Fix tox factor matching (#2129)

* Fix tox factor matching

Fixes #2128

* Add missing fixes for several test envs

* Fix django
This commit is contained in:
Diego Hurtado
2024-01-17 17:14:43 -06:00
committed by GitHub
parent c9d709a5c4
commit f2c536ed82
3 changed files with 100 additions and 106 deletions

View File

@ -57,7 +57,7 @@ jobs:
- "logging"
- "mysql"
- "mysqlclient"
- "pika"
- "sio-pika"
- "psycopg2"
- "pymemcache"
- "pymongo"

View File

@ -26,7 +26,7 @@ jobs:
python-version: [py37, py38, py39, py310, py311, pypy3]
package:
- "urllib"
- "urllib3"
- "urllib3v"
- "wsgi"
- "distro"
- "richconsole"

202
tox.ini
View File

@ -22,9 +22,6 @@ envlist =
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
@ -54,11 +51,11 @@ envlist =
; 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}
py3{7}-test-instrumentation-django-1
py3{7,8,9}-test-instrumentation-django-2
py3{7,8,9,10,11}-test-instrumentation-django-3
py3{8,9,10,11}-test-instrumentation-django-4
pypy3-test-instrumentation-django-{1,2,3}
; opentelemetry-instrumentation-dbapi
py3{7,8,9,10,11}-test-instrumentation-dbapi
@ -70,41 +67,39 @@ envlist =
; 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
py3{7,8,9,10,11}-test-instrumentation-elasticsearch-{2,6}
pypy3-test-instrumentation-elasticsearch-{2,6}
py3{7,8,9}-test-instrumentation-elasticsearch-5
pypy3-test-instrumentation-elasticsearch-5
; 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}
py3{7,8,9}-test-instrumentation-falcon-1
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}
py3{8,9,10,11}-test-instrumentation-flask{300}
pypy3-test-instrumentation-flask{213,220}
py3{7,8,9,10,11}-test-instrumentation-flask-{213,220}
py3{8,9,10,11}-test-instrumentation-flask-{300}
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}
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.
; opentelemetry-instrumentation-starlette
py3{7,8,9,10,11}-test-instrumentation-starlette
pypy3-test-instrumentation-starlette
@ -135,8 +130,8 @@ envlist =
; 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}
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
@ -170,9 +165,9 @@ envlist =
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}
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
@ -206,8 +201,8 @@ envlist =
pypy3-test-instrumentation-tortoiseorm
; opentelemetry-instrumentation-httpx
py3{7,8,9,10,11}-test-instrumentation-httpx{18,21}
pypy3-test-instrumentation-httpx{18,21}
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
@ -221,13 +216,13 @@ envlist =
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-sio-pika
py3{7,8,9,10,11}-test-instrumentation-sio-pika-{0,1}
pypy3-test-instrumentation-sio-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}
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
@ -255,50 +250,50 @@ deps =
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
django-1: django~=1.0
django-2: django~=2.0
django-3: django~=3.0
django-4: django>=4.0b1,<5.0
elasticsearch-2: elasticsearch-dsl>=2.0,<3.0
elasticsearch-2: elasticsearch>=2.0,<3.0
elasticsearch-5: elasticsearch-dsl>=5.0,<6.0
elasticsearch-5: elasticsearch>=5.0,<6.0
elasticsearch-6: elasticsearch-dsl>=6.0,<7.0
elasticsearch-6: 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
flask213: Werkzeug <3.0.0
flask220: Flask ==2.2.0
flask220: Werkzeug <3.0.0
flask300: Flask >=3.0.0
flask300: Werkzeug >=3.0.0
; elasticsearch-7: elasticsearch-dsl>=7.0,<8.0
; elasticsearch-7: elasticsearch>=7.0,<8.0
; elasticsearch-8: elasticsearch-dsl>=8.0,<9.0
; elasticsearch-8: elasticsearch>=8.0,<9.0
falcon-1: falcon ==1.4.1
falcon-2: falcon >=2.0.0,<3.0.0
falcon-3: falcon >=3.0.0,<4.0.0
flask-213: Flask ==2.1.3
flask-213: Werkzeug <3.0.0
flask-220: Flask ==2.2.0
flask-220: Werkzeug <3.0.0
flask-300: Flask >=3.0.0
flask-300: Werkzeug >=3.0.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
sqlalchemy-11: sqlalchemy>=1.1,<1.2
sqlalchemy-14: aiosqlite
sqlalchemy-14: sqlalchemy~=1.4
sio-pika-0: pika>=0.12.0,<1.0.0
sio-pika-1: pika>=1.0.0
aio-pika-7: aio_pika~=7.2.0
aio-pika-8: aio_pika>=8.0.0,<9.0.0
aio-pika-9: aio_pika>=9.0.0,<10.0.0
pymemcache-135: pymemcache ==1.3.5
pymemcache-200: pymemcache >2.0.0,<3.0.0
pymemcache-300: pymemcache >3.0.0,<3.4.2
pymemcache-342: pymemcache ==3.4.2
pymemcache-400: pymemcache ==4.0.0
httpx-18: httpx>=0.18.0,<0.19.0
httpx-18: respx~=0.17.0
httpx-21: httpx>=0.19.0
httpx-21: respx~=0.20.1
urllib3v-1: urllib3 >=1.0.0,<2.0.0
urllib3v-2: urllib3 >=2.0.0,<3.0.0
; FIXME: add coverage testing
; FIXME: add mypy testing
@ -312,7 +307,6 @@ setenv =
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-aiohttp-server: instrumentation/opentelemetry-instrumentation-aiohttp-server/tests
test-instrumentation-aiopg: instrumentation/opentelemetry-instrumentation-aiopg/tests
@ -325,13 +319,13 @@ changedir =
test-instrumentation-cassandra: instrumentation/opentelemetry-instrumentation-cassandra/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-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,300}: instrumentation/opentelemetry-instrumentation-flask/tests
test-instrumentation-flask-{213,220,300}: 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-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
@ -339,10 +333,10 @@ changedir =
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-sio-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-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
@ -350,14 +344,14 @@ changedir =
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-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-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
@ -381,9 +375,9 @@ commands_pre =
celery: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-celery[test]
pika{0,1}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-pika[test]
sio-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]
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]
@ -391,9 +385,9 @@ commands_pre =
grpc: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc[test]
falcon{1,2,3},flask{213,220,300},django{1,2,3,4},pyramid,tornado,starlette,fastapi,aiohttp,asgi,httpx{18,21},requests,urllib,urllib3v{1,2},wsgi: pip install {toxinidir}/util/opentelemetry-util-http[test]
wsgi,falcon{1,2,3},flask{213,220,300},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]
falcon-{1,2,3},flask-{213,220,300},django-{1,2,3,4},pyramid,tornado,starlette,fastapi,aiohttp,asgi,httpx-{18,21},requests,urllib,urllib3v-{1,2},wsgi: pip install {toxinidir}/util/opentelemetry-util-http
wsgi,falcon-{1,2,3},flask-{213,220,300},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]
@ -404,13 +398,13 @@ commands_pre =
boto3sqs: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-boto3sqs[test]
falcon{1,2,3}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon[test]
falcon-{1,2,3}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon[test]
flask{213,220,300}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-flask[test]
flask-{213,220,300}: 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]
urllib3v-{1,2}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib3[test]
botocore: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-botocore[test]
@ -418,7 +412,7 @@ commands_pre =
dbapi: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi[test]
django{1,2,3,4}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-django[test]
django-{1,2,3,4}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-django[test]
fastapi: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi[test]
@ -426,7 +420,7 @@ commands_pre =
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]
pymemcache-{135,200,300,342,400}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache[test]
pymongo: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-pymongo[test]
@ -456,7 +450,7 @@ commands_pre =
logging: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-logging[test]
aio-pika: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika[test]
aio-pika-{7,8,9}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika[test]
aiohttp-client: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-client[test]
@ -470,17 +464,17 @@ commands_pre =
sklearn: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-sklearn[test]
sqlalchemy{11,14}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy[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]
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]
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]
http: pip install {toxinidir}/util/opentelemetry-util-http
; In order to get a health coverage report,
propagator-ot-trace: pip install {toxinidir}/propagator/opentelemetry-propagator-ot-trace[test]
@ -531,7 +525,7 @@ commands_pre =
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}/util/opentelemetry-util-http
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]