642 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			INI
		
	
	
	
			
		
		
	
	
			642 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			INI
		
	
	
	
[tox]
 | 
						|
isolated_build = True
 | 
						|
skipsdist = True
 | 
						|
skip_missing_interpreters = True
 | 
						|
envlist =
 | 
						|
    ; Environments are organized by individual package, allowing
 | 
						|
    ; for specifying supported Python versions per package.
 | 
						|
 | 
						|
    ; opentelemetry-resource-detector-container
 | 
						|
    py3{7,8,9,10,11}-test-resource-detector-container
 | 
						|
    pypy3-test-resource-detector-container
 | 
						|
 | 
						|
    ; opentelemetry-sdk-extension-aws
 | 
						|
    py3{7,8,9,10,11}-test-sdkextension-aws
 | 
						|
    pypy3-test-sdkextension-aws
 | 
						|
 | 
						|
    ; opentelemetry-distro
 | 
						|
    py3{7,8,9,10,11}-test-distro
 | 
						|
    pypy3-test-distro
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation
 | 
						|
    py3{7,8,9,10,11}-test-opentelemetry-instrumentation
 | 
						|
    pypy3-test-opentelemetry-instrumentation
 | 
						|
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-aio-pika
 | 
						|
    pypy3-test-instrumentation-aio-pika
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-aiohttp-client
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-aiohttp-client
 | 
						|
    pypy3-test-instrumentation-aiohttp-client
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-aiopg
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-aiopg
 | 
						|
    ; instrumentation-aiopg intentionally excluded from pypy3
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-aws-lambda
 | 
						|
    py3{7,8,9}-test-instrumentation-aws-lambda
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-botocore
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-botocore
 | 
						|
    ; FIXME: see https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1736
 | 
						|
    ; pypy3-test-instrumentation-botocore
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-boto3sqs
 | 
						|
    py3{6,7,8,9,10,11}-test-instrumentation-boto3sqs
 | 
						|
    ; FIXME: see https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1736
 | 
						|
    ; pypy3-test-instrumentation-boto3sqs
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-django
 | 
						|
    ; Only officially supported Python versions are tested for each Django
 | 
						|
    ; major release. Updated list can be found at:
 | 
						|
    ; https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django
 | 
						|
    py3{7}-test-instrumentation-django1
 | 
						|
    py3{7,8,9}-test-instrumentation-django2
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-django3
 | 
						|
    py3{8,9,10,11}-test-instrumentation-django4
 | 
						|
    pypy3-test-instrumentation-django{1,2,3}
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-dbapi
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-dbapi
 | 
						|
    pypy3-test-instrumentation-dbapi
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-boto
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-boto
 | 
						|
    ; FIXME: see https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1736
 | 
						|
    ; pypy3-test-instrumentation-boto
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-elasticsearch
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-elasticsearch{2,6}
 | 
						|
    pypy3-test-instrumentation-elasticsearch{2,6}
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-elasticsearch5
 | 
						|
    py3{7,8,9}-test-instrumentation-elasticsearch5
 | 
						|
    pypy3-test-instrumentation-elasticsearch5
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-falcon
 | 
						|
    ; py310 does not work with falcon 1
 | 
						|
    py3{7,8,9}-test-instrumentation-falcon1
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-falcon{2,3}
 | 
						|
    pypy3-test-instrumentation-falcon{1,2,3}
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-fastapi
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-fastapi
 | 
						|
    pypy3-test-instrumentation-fastapi
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-flask
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-flask{213,220}
 | 
						|
    pypy3-test-instrumentation-flask{213,220}
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-urllib
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-urllib
 | 
						|
    pypy3-test-instrumentation-urllib
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-urllib3
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-urllib3v{1,2}
 | 
						|
    ;pypy3-test-instrumentation-urllib3v{1,2}
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-requests
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-requests
 | 
						|
    ;pypy3-test-instrumentation-requests
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-starlette.
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-starlette
 | 
						|
    pypy3-test-instrumentation-starlette
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-jinja2
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-jinja2
 | 
						|
    pypy3-test-instrumentation-jinja2
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-logging
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-logging
 | 
						|
    pypy3-test-instrumentation-logging
 | 
						|
 | 
						|
    ; opentelemetry-exporter-richconsole
 | 
						|
    py3{7,8,9,10,11}-test-exporter-richconsole
 | 
						|
 | 
						|
    ; opentelemetry-exporter-prometheus-remote-write
 | 
						|
    py3{6,7,8,9,10}-test-exporter-prometheus-remote-write
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-mysql
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-mysql
 | 
						|
    pypy3-test-instrumentation-mysql
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-mysqlclient
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-mysqlclient
 | 
						|
    pypy3-test-instrumentation-mysqlclient
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-psycopg2
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-psycopg2
 | 
						|
    ; ext-psycopg2 intentionally excluded from pypy3
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-pymemcache
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-pymemcache{135,200,300,342,400}
 | 
						|
    pypy3-test-instrumentation-pymemcache{135,200,300,342,400}
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-pymongo
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-pymongo
 | 
						|
    pypy3-test-instrumentation-pymongo
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-pymysql
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-pymysql
 | 
						|
    pypy3-test-instrumentation-pymysql
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-pyramid
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-pyramid
 | 
						|
    pypy3-test-instrumentation-pyramid
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-asgi
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-asgi
 | 
						|
    pypy3-test-instrumentation-asgi
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-asyncpg
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-asyncpg
 | 
						|
    ; ext-asyncpg intentionally excluded from pypy3
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-sqlite3
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-sqlite3
 | 
						|
    pypy3-test-instrumentation-sqlite3
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-wsgi
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-wsgi
 | 
						|
    pypy3-test-instrumentation-wsgi
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-grpc
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-grpc
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-sqlalchemy
 | 
						|
    py3{7}-test-instrumentation-sqlalchemy{11}
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-sqlalchemy{14}
 | 
						|
    pypy3-test-instrumentation-sqlalchemy{11,14}
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-redis
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-redis
 | 
						|
    pypy3-test-instrumentation-redis
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-remoulade
 | 
						|
    ; remoulade only supports 3.7 and above
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-remoulade
 | 
						|
    ; instrumentation-remoulade intentionally excluded from pypy3
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-celery
 | 
						|
    ; celery tests don't run on 3.7 because our opentelemetry-api requires importlib-metadata >= 5.0.0
 | 
						|
    ; but celery requires importlib-metadata < 5.0.0
 | 
						|
    ; see https://github.com/celery/celery/issues/7783 for more details
 | 
						|
    py3{8,9,10,11}-test-instrumentation-celery
 | 
						|
    ; pypy3-test-instrumentation-celery
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-sklearn
 | 
						|
    py3{7,8}-test-instrumentation-sklearn
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-system-metrics
 | 
						|
    py3{6,7,8,9,10,11}-test-instrumentation-system-metrics
 | 
						|
    ; instrumentation-system-metrics intentionally excluded from pypy3
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-tornado
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-tornado
 | 
						|
    pypy3-test-instrumentation-tornado
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-tortoiseorm
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-tortoiseorm
 | 
						|
    pypy3-test-instrumentation-tortoiseorm
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-httpx
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-httpx{18,21}
 | 
						|
    pypy3-test-instrumentation-httpx{18,21}
 | 
						|
 | 
						|
    ; opentelemetry-util-http
 | 
						|
    py3{7,8,9,10,11}-test-util-http
 | 
						|
    pypy3-test-util-http
 | 
						|
 | 
						|
    ; opentelemetry-propagator-aws-xray
 | 
						|
    py3{7,8,9,10,11}-test-propagator-aws-xray
 | 
						|
    pypy3-test-propagator-aws-xray
 | 
						|
 | 
						|
    ; opentelemetry-propagator-ot-trace
 | 
						|
    py3{7,8,9,10,11}-test-propagator-ot-trace
 | 
						|
    pypy3-test-propagator-ot-trace
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-pika
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-pika{0,1}
 | 
						|
    pypy3-test-instrumentation-pika{0,1}
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-aio-pika
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-aio-pika{7,8,9}
 | 
						|
    pypy3-test-instrumentation-aio-pika{7,8,9}
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-kafka-python
 | 
						|
    py3{7,8,9,10,11}-test-instrumentation-kafka-python
 | 
						|
    pypy3-test-instrumentation-kafka-python
 | 
						|
 | 
						|
    ; opentelemetry-instrumentation-confluent-kafka
 | 
						|
    ; // FIXME: Enable support for python 3.11 when https://github.com/confluentinc/confluent-kafka-python/issues/1452 is fixed
 | 
						|
    py3{7,8,9,10}-test-instrumentation-confluent-kafka
 | 
						|
 | 
						|
    lint
 | 
						|
    spellcheck
 | 
						|
    docker-tests
 | 
						|
    docs
 | 
						|
 | 
						|
    generate
 | 
						|
 | 
						|
[testenv]
 | 
						|
deps =
 | 
						|
  -c dev-requirements.txt
 | 
						|
  test: pytest
 | 
						|
  test: pytest-benchmark
 | 
						|
  coverage: pytest
 | 
						|
  coverage: pytest-cov
 | 
						|
  django1: django~=1.0
 | 
						|
  django2: django~=2.0
 | 
						|
  django3: django~=3.0
 | 
						|
  django4: django>=4.0b1,<5.0
 | 
						|
  elasticsearch2: elasticsearch-dsl>=2.0,<3.0
 | 
						|
  elasticsearch2: elasticsearch>=2.0,<3.0
 | 
						|
  elasticsearch5: elasticsearch-dsl>=5.0,<6.0
 | 
						|
  elasticsearch5: elasticsearch>=5.0,<6.0
 | 
						|
  elasticsearch6: elasticsearch-dsl>=6.0,<7.0
 | 
						|
  elasticsearch6: elasticsearch>=6.0,<7.0
 | 
						|
  ; FIXME: Elasticsearch >=7 causes CI workflow tests to hang, see open-telemetry/opentelemetry-python-contrib#620
 | 
						|
  ; elasticsearch7: elasticsearch-dsl>=7.0,<8.0
 | 
						|
  ; elasticsearch7: elasticsearch>=7.0,<8.0
 | 
						|
  ; elasticsearch8: elasticsearch-dsl>=8.0,<9.0
 | 
						|
  ; elasticsearch8: elasticsearch>=8.0,<9.0
 | 
						|
  falcon1: falcon ==1.4.1
 | 
						|
  falcon2: falcon >=2.0.0,<3.0.0
 | 
						|
  falcon3: falcon >=3.0.0,<4.0.0
 | 
						|
  flask213: Flask ==2.1.3
 | 
						|
  flask220: Flask >=2.2.0
 | 
						|
  grpc: pytest-asyncio
 | 
						|
  sqlalchemy11: sqlalchemy>=1.1,<1.2
 | 
						|
  sqlalchemy14: aiosqlite
 | 
						|
  sqlalchemy14: sqlalchemy~=1.4
 | 
						|
  pika0: pika>=0.12.0,<1.0.0
 | 
						|
  pika1: pika>=1.0.0
 | 
						|
  aio-pika7: aio_pika~=7.2.0
 | 
						|
  aio-pika8: aio_pika>=8.0.0,<9.0.0
 | 
						|
  aio-pika9: aio_pika>=9.0.0,<10.0.0
 | 
						|
  pymemcache135: pymemcache ==1.3.5
 | 
						|
  pymemcache200: pymemcache >2.0.0,<3.0.0
 | 
						|
  pymemcache300: pymemcache >3.0.0,<3.4.2
 | 
						|
  pymemcache342: pymemcache ==3.4.2
 | 
						|
  pymemcache400: pymemcache ==4.0.0
 | 
						|
  httpx18: httpx>=0.18.0,<0.19.0
 | 
						|
  httpx18: respx~=0.17.0
 | 
						|
  httpx21: httpx>=0.19.0
 | 
						|
  httpx21: respx~=0.20.1
 | 
						|
  urllib3v1: urllib3 >=1.0.0,<2.0.0
 | 
						|
  urllib3v2: urllib3 >=2.0.0,<3.0.0
 | 
						|
 | 
						|
  ; FIXME: add coverage testing
 | 
						|
  ; FIXME: add mypy testing
 | 
						|
 | 
						|
setenv =
 | 
						|
  ; override CORE_REPO_SHA via env variable when testing other branches/commits than main
 | 
						|
  ; i.e: CORE_REPO_SHA=dde62cebffe519c35875af6d06fae053b3be65ec tox -e <env to test>
 | 
						|
  CORE_REPO_SHA={env:CORE_REPO_SHA:main}
 | 
						|
  CORE_REPO="git+https://github.com/open-telemetry/opentelemetry-python.git@{env:CORE_REPO_SHA}"
 | 
						|
 | 
						|
changedir =
 | 
						|
  test-distro: opentelemetry-distro/tests
 | 
						|
  test-opentelemetry-instrumentation: opentelemetry-instrumentation/tests
 | 
						|
  test-instrumentation-aio-pika: instrumentation/opentelemetry-instrumentation-aio-pika/tests
 | 
						|
  test-instrumentation-aiohttp-client: instrumentation/opentelemetry-instrumentation-aiohttp-client/tests
 | 
						|
  test-instrumentation-aiopg: instrumentation/opentelemetry-instrumentation-aiopg/tests
 | 
						|
  test-instrumentation-asgi: instrumentation/opentelemetry-instrumentation-asgi/tests
 | 
						|
  test-instrumentation-asyncpg: instrumentation/opentelemetry-instrumentation-asyncpg/tests
 | 
						|
  test-instrumentation-aws-lambda: instrumentation/opentelemetry-instrumentation-aws-lambda/tests
 | 
						|
  test-instrumentation-boto: instrumentation/opentelemetry-instrumentation-boto/tests
 | 
						|
  test-instrumentation-botocore: instrumentation/opentelemetry-instrumentation-botocore/tests
 | 
						|
  test-instrumentation-boto3sqs: instrumentation/opentelemetry-instrumentation-boto3sqs/tests
 | 
						|
  test-instrumentation-celery: instrumentation/opentelemetry-instrumentation-celery/tests
 | 
						|
  test-instrumentation-dbapi: instrumentation/opentelemetry-instrumentation-dbapi/tests
 | 
						|
  test-instrumentation-django{1,2,3,4}: instrumentation/opentelemetry-instrumentation-django/tests
 | 
						|
  test-instrumentation-elasticsearch{2,5,6}: instrumentation/opentelemetry-instrumentation-elasticsearch/tests
 | 
						|
  test-instrumentation-falcon{1,2,3}: instrumentation/opentelemetry-instrumentation-falcon/tests
 | 
						|
  test-instrumentation-fastapi: instrumentation/opentelemetry-instrumentation-fastapi/tests
 | 
						|
  test-instrumentation-flask{213,220}: instrumentation/opentelemetry-instrumentation-flask/tests
 | 
						|
  test-instrumentation-urllib: instrumentation/opentelemetry-instrumentation-urllib/tests
 | 
						|
  test-instrumentation-urllib3v{1,2}: instrumentation/opentelemetry-instrumentation-urllib3/tests
 | 
						|
  test-instrumentation-grpc: instrumentation/opentelemetry-instrumentation-grpc/tests
 | 
						|
  test-instrumentation-jinja2: instrumentation/opentelemetry-instrumentation-jinja2/tests
 | 
						|
  test-instrumentation-kafka-python: instrumentation/opentelemetry-instrumentation-kafka-python/tests
 | 
						|
  test-instrumentation-confluent-kafka: instrumentation/opentelemetry-instrumentation-confluent-kafka/tests
 | 
						|
  test-instrumentation-logging: instrumentation/opentelemetry-instrumentation-logging/tests
 | 
						|
  test-instrumentation-mysql: instrumentation/opentelemetry-instrumentation-mysql/tests
 | 
						|
  test-instrumentation-mysqlclient: instrumentation/opentelemetry-instrumentation-mysqlclient/tests
 | 
						|
  test-instrumentation-pika{0,1}: instrumentation/opentelemetry-instrumentation-pika/tests
 | 
						|
  test-instrumentation-aio-pika{7,8,9}: instrumentation/opentelemetry-instrumentation-aio-pika/tests
 | 
						|
  test-instrumentation-psycopg2: instrumentation/opentelemetry-instrumentation-psycopg2/tests
 | 
						|
  test-instrumentation-pymemcache{135,200,300,342,400}: instrumentation/opentelemetry-instrumentation-pymemcache/tests
 | 
						|
  test-instrumentation-pymongo: instrumentation/opentelemetry-instrumentation-pymongo/tests
 | 
						|
  test-instrumentation-pymysql: instrumentation/opentelemetry-instrumentation-pymysql/tests
 | 
						|
  test-instrumentation-pyramid: instrumentation/opentelemetry-instrumentation-pyramid/tests
 | 
						|
  test-instrumentation-redis: instrumentation/opentelemetry-instrumentation-redis/tests
 | 
						|
  test-instrumentation-remoulade: instrumentation/opentelemetry-instrumentation-remoulade/tests
 | 
						|
  test-instrumentation-requests: instrumentation/opentelemetry-instrumentation-requests/tests
 | 
						|
  test-instrumentation-sklearn: instrumentation/opentelemetry-instrumentation-sklearn/tests
 | 
						|
  test-instrumentation-sqlalchemy{11,14}: instrumentation/opentelemetry-instrumentation-sqlalchemy/tests
 | 
						|
  test-instrumentation-sqlite3: instrumentation/opentelemetry-instrumentation-sqlite3/tests
 | 
						|
  test-instrumentation-starlette: instrumentation/opentelemetry-instrumentation-starlette/tests
 | 
						|
  test-instrumentation-system-metrics: instrumentation/opentelemetry-instrumentation-system-metrics/tests
 | 
						|
  test-instrumentation-tornado: instrumentation/opentelemetry-instrumentation-tornado/tests
 | 
						|
  test-instrumentation-tortoiseorm: instrumentation/opentelemetry-instrumentation-tortoiseorm/tests
 | 
						|
  test-instrumentation-wsgi: instrumentation/opentelemetry-instrumentation-wsgi/tests
 | 
						|
  test-instrumentation-httpx{18,21}: instrumentation/opentelemetry-instrumentation-httpx/tests
 | 
						|
  test-util-http: util/opentelemetry-util-http/tests
 | 
						|
  test-sdkextension-aws: sdk-extension/opentelemetry-sdk-extension-aws/tests
 | 
						|
  test-resource-detector-container: resource/opentelemetry-resource-detector-container/tests
 | 
						|
  test-propagator-aws: propagator/opentelemetry-propagator-aws-xray/tests
 | 
						|
  test-propagator-ot-trace: propagator/opentelemetry-propagator-ot-trace/tests
 | 
						|
  test-exporter-richconsole: exporter/opentelemetry-exporter-richconsole/tests
 | 
						|
  test-exporter-prometheus-remote-write: exporter/opentelemetry-exporter-prometheus-remote-write/tests
 | 
						|
 | 
						|
commands_pre =
 | 
						|
; Install without -e to test the actual installation
 | 
						|
  py3{7,8,9,10,11}: python -m pip install -U pip setuptools wheel
 | 
						|
; Install common packages for all the tests. These are not needed in all the
 | 
						|
; cases but it saves a lot of boilerplate in this file.
 | 
						|
  test: pip install "opentelemetry-api[test] @ {env:CORE_REPO}#egg=opentelemetry-api&subdirectory=opentelemetry-api"
 | 
						|
  test: pip install "opentelemetry-semantic-conventions[test] @ {env:CORE_REPO}#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions"
 | 
						|
  test: pip install "opentelemetry-sdk[test] @ {env:CORE_REPO}#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk"
 | 
						|
  test: pip install "opentelemetry-test-utils[test] @ {env:CORE_REPO}#egg=opentelemetry-test-utils&subdirectory=tests/opentelemetry-test-utils"
 | 
						|
  test: pip install {toxinidir}/opentelemetry-instrumentation
 | 
						|
 | 
						|
  distro: pip install {toxinidir}/opentelemetry-distro
 | 
						|
 | 
						|
  celery: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-celery[test]
 | 
						|
 | 
						|
  pika{0,1}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-pika[test]
 | 
						|
 | 
						|
  aio-pika{7,8,9}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika[test]
 | 
						|
 | 
						|
  kafka-python: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-kafka-python[test]
 | 
						|
 | 
						|
  confluent-kafka: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-confluent-kafka[test]
 | 
						|
 | 
						|
  grpc: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc[test]
 | 
						|
 | 
						|
  falcon{1,2,3},flask{213,220},django{1,2,3,4},pyramid,tornado,starlette,fastapi,aiohttp,asgi,requests,urllib,urllib3v{1,2},wsgi: pip install {toxinidir}/util/opentelemetry-util-http[test]
 | 
						|
  wsgi,falcon{1,2,3},flask{213,220},django{1,2,3,4},pyramid: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-wsgi[test]
 | 
						|
  asgi,django{3,4},starlette,fastapi: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-asgi[test]
 | 
						|
 | 
						|
  asyncpg: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncpg[test]
 | 
						|
 | 
						|
  aws-lambda: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aws-lambda[test]
 | 
						|
 | 
						|
  boto: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-botocore[test]
 | 
						|
  boto: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-boto[test]
 | 
						|
 | 
						|
  boto3sqs: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-boto3sqs[test]
 | 
						|
 | 
						|
  falcon{1,2,3}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon[test]
 | 
						|
 | 
						|
  flask{213,220}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-flask[test]
 | 
						|
 | 
						|
  urllib: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib[test]
 | 
						|
 | 
						|
  urllib3v{1,2}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib3[test]
 | 
						|
 | 
						|
  botocore: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-botocore[test]
 | 
						|
 | 
						|
  dbapi: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi[test]
 | 
						|
 | 
						|
  django{1,2,3,4}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-django[test]
 | 
						|
 | 
						|
  fastapi: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi[test]
 | 
						|
 | 
						|
  mysql: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi {toxinidir}/instrumentation/opentelemetry-instrumentation-mysql[test]
 | 
						|
 | 
						|
  mysqlclient: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi {toxinidir}/instrumentation/opentelemetry-instrumentation-mysqlclient[test]
 | 
						|
 | 
						|
  pymemcache{135,200,300,342,400}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache[test]
 | 
						|
 | 
						|
  pymongo: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-pymongo[test]
 | 
						|
 | 
						|
  psycopg2: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg2[test]
 | 
						|
 | 
						|
  pymysql: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi {toxinidir}/instrumentation/opentelemetry-instrumentation-pymysql[test]
 | 
						|
 | 
						|
  pyramid: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-pyramid[test]
 | 
						|
 | 
						|
  sqlite3: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlite3[test]
 | 
						|
 | 
						|
  redis: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-redis[test]
 | 
						|
 | 
						|
  remoulade: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-remoulade[test]
 | 
						|
 | 
						|
  requests: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-requests[test]
 | 
						|
 | 
						|
  starlette: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-starlette[test]
 | 
						|
 | 
						|
  system-metrics: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-system-metrics[test]
 | 
						|
 | 
						|
  tornado: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-tornado[test]
 | 
						|
 | 
						|
  tortoiseorm: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-tortoiseorm[test]
 | 
						|
 | 
						|
  jinja2: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-jinja2[test]
 | 
						|
 | 
						|
  logging: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-logging[test]
 | 
						|
 | 
						|
  aio-pika: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika[test]
 | 
						|
 | 
						|
  aiohttp-client: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-client[test]
 | 
						|
 | 
						|
  aiopg: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aiopg[test]
 | 
						|
 | 
						|
  richconsole: pip install flaky {toxinidir}/exporter/opentelemetry-exporter-richconsole[test]
 | 
						|
 | 
						|
  prometheus: pip install {toxinidir}/exporter/opentelemetry-exporter-prometheus-remote-write[test]
 | 
						|
 | 
						|
  sklearn: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-sklearn[test]
 | 
						|
 | 
						|
  sqlalchemy{11,14}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy[test]
 | 
						|
 | 
						|
  elasticsearch{2,5,6}: pip install {toxinidir}/opentelemetry-instrumentation[test] {toxinidir}/instrumentation/opentelemetry-instrumentation-elasticsearch[test]
 | 
						|
 | 
						|
  httpx{18,21}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-httpx[test]
 | 
						|
 | 
						|
  sdkextension-aws: pip install {toxinidir}/sdk-extension/opentelemetry-sdk-extension-aws[test]
 | 
						|
 | 
						|
  resource-detector-container: pip install {toxinidir}/resource/opentelemetry-resource-detector-container[test]
 | 
						|
 | 
						|
  http: pip install {toxinidir}/util/opentelemetry-util-http[test]
 | 
						|
; In order to get a health coverage report,
 | 
						|
  propagator-ot-trace: pip install {toxinidir}/propagator/opentelemetry-propagator-ot-trace[test]
 | 
						|
 | 
						|
  propagator-aws-xray: pip install requests {toxinidir}/propagator/opentelemetry-propagator-aws-xray[test]
 | 
						|
 | 
						|
; we have to install packages in editable mode.
 | 
						|
  coverage: python {toxinidir}/scripts/eachdist.py install --editable
 | 
						|
 | 
						|
commands =
 | 
						|
  test: pytest {posargs}
 | 
						|
  coverage: {toxinidir}/scripts/coverage.sh
 | 
						|
 | 
						|
[testenv:docs]
 | 
						|
deps =
 | 
						|
  -c {toxinidir}/dev-requirements.txt
 | 
						|
  -r {toxinidir}/docs-requirements.txt
 | 
						|
  pytest
 | 
						|
 | 
						|
commands_pre =
 | 
						|
  python -m pip install "{env:CORE_REPO}#egg=opentelemetry-api&subdirectory=opentelemetry-api"
 | 
						|
  python -m pip install "{env:CORE_REPO}#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions"
 | 
						|
  python -m pip install "{env:CORE_REPO}#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk"
 | 
						|
  python -m pip install {toxinidir}/opentelemetry-instrumentation
 | 
						|
  python -m pip install {toxinidir}/util/opentelemetry-util-http
 | 
						|
 | 
						|
changedir = docs
 | 
						|
 | 
						|
commands =
 | 
						|
  sphinx-build -E -a -W -b html -T . _build/html
 | 
						|
 | 
						|
[testenv:spellcheck]
 | 
						|
basepython: python3.10
 | 
						|
recreate = True
 | 
						|
deps =
 | 
						|
  codespell
 | 
						|
 | 
						|
commands =
 | 
						|
  codespell
 | 
						|
 | 
						|
[testenv:lint]
 | 
						|
basepython: python3.10
 | 
						|
recreate = False
 | 
						|
deps =
 | 
						|
  -c dev-requirements.txt
 | 
						|
  flaky
 | 
						|
  pylint
 | 
						|
  flake8
 | 
						|
  isort
 | 
						|
  black
 | 
						|
  readme_renderer
 | 
						|
  httpretty
 | 
						|
 | 
						|
commands_pre =
 | 
						|
  python -m pip install "{env:CORE_REPO}#egg=opentelemetry-api&subdirectory=opentelemetry-api"
 | 
						|
  python -m pip install "{env:CORE_REPO}#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions"
 | 
						|
  python -m pip install "{env:CORE_REPO}#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk"
 | 
						|
  python -m pip install "{env:CORE_REPO}#egg=opentelemetry-test-utils&subdirectory=tests/opentelemetry-test-utils"
 | 
						|
  python -m pip install -e {toxinidir}/util/opentelemetry-util-http[test]
 | 
						|
  python -m pip install -e {toxinidir}/opentelemetry-instrumentation[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-wsgi[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-asgi[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-botocore[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-boto3sqs[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-django[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-starlette[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-boto[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-flask[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-celery[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pika[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-sklearn[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-redis[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-remoulade[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-jinja2[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-kafka-python[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-confluent-kafka[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-logging[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg2[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-client[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-aiopg[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlite3[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pyramid[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-requests[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib3[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pymysql[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-mysqlclient[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pymongo[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-elasticsearch[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncpg[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-tornado[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-tortoiseorm[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-mysql[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-httpx[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-aws-lambda[test]
 | 
						|
  python -m pip install -e {toxinidir}/instrumentation/opentelemetry-instrumentation-system-metrics[test]
 | 
						|
  python -m pip install -e {toxinidir}/exporter/opentelemetry-exporter-richconsole[test]
 | 
						|
  python -m pip install -e {toxinidir}/exporter/opentelemetry-exporter-prometheus-remote-write[test]
 | 
						|
  python -m pip install -e {toxinidir}/sdk-extension/opentelemetry-sdk-extension-aws[test]
 | 
						|
  python -m pip install -e {toxinidir}/resource/opentelemetry-resource-detector-container[test]
 | 
						|
  python -m pip install -e {toxinidir}/propagator/opentelemetry-propagator-aws-xray[test]
 | 
						|
  python -m pip install -e {toxinidir}/propagator/opentelemetry-propagator-ot-trace[test]
 | 
						|
  python -m pip install -e {toxinidir}/opentelemetry-distro[test]
 | 
						|
 | 
						|
commands =
 | 
						|
  python scripts/eachdist.py lint --check-only
 | 
						|
 | 
						|
[testenv:docker-tests]
 | 
						|
basepython: python3.10
 | 
						|
deps =
 | 
						|
  pip >= 20.3.3
 | 
						|
  pytest
 | 
						|
  asyncpg==0.27.0
 | 
						|
  docker-compose >= 1.25.2
 | 
						|
  mysql-connector-python ~=  8.0
 | 
						|
  pymongo >= 3.1, < 5.0
 | 
						|
  PyMySQL ~= 0.10.1
 | 
						|
  psycopg2 ~= 2.9.5
 | 
						|
  aiopg >= 0.13.0, < 1.3.0
 | 
						|
  sqlalchemy ~= 1.4
 | 
						|
  redis ~= 4.3
 | 
						|
  celery[pytest] >= 4.0, < 6.0
 | 
						|
  protobuf~=3.13
 | 
						|
  requests==2.25.0
 | 
						|
  pyodbc~=4.0.30
 | 
						|
  flaky==3.7.0
 | 
						|
  remoulade>=0.50
 | 
						|
  mysqlclient~=2.1.1
 | 
						|
 | 
						|
changedir =
 | 
						|
  tests/opentelemetry-docker-tests/tests
 | 
						|
 | 
						|
commands_pre =
 | 
						|
  pip install "{env:CORE_REPO}#egg=opentelemetry-api&subdirectory=opentelemetry-api" \
 | 
						|
              "{env:CORE_REPO}#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions" \
 | 
						|
              "{env:CORE_REPO}#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk" \
 | 
						|
              "{env:CORE_REPO}#egg=opentelemetry-test-utils&subdirectory=tests/opentelemetry-test-utils" \
 | 
						|
              -e {toxinidir}/opentelemetry-instrumentation \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncpg \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-celery \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pika \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-kafka-python \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-confluent-kafka \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-mysql \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-mysqlclient \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg2 \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pymongo \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pymysql \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-aiopg \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-redis \
 | 
						|
              -e {toxinidir}/instrumentation/opentelemetry-instrumentation-remoulade \
 | 
						|
              "{env:CORE_REPO}#egg=opentelemetry-exporter-opencensus&subdirectory=exporter/opentelemetry-exporter-opencensus"
 | 
						|
  docker-compose up -d
 | 
						|
  python check_availability.py
 | 
						|
 | 
						|
commands =
 | 
						|
  pytest {posargs}
 | 
						|
 | 
						|
commands_post =
 | 
						|
  docker-compose down -v
 | 
						|
 | 
						|
[testenv:generate]
 | 
						|
deps =
 | 
						|
  -r {toxinidir}/gen-requirements.txt
 | 
						|
 | 
						|
commands =
 | 
						|
  {toxinidir}/scripts/generate_instrumentation_bootstrap.py
 | 
						|
  {toxinidir}/scripts/generate_instrumentation_readme.py
 | 
						|
  {toxinidir}/scripts/generate_instrumentation_metapackage.py
 |