mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-08-05 22:09:56 +08:00

Co-authored-by: Leighton Chen <lechen@microsoft.com> Co-authored-by: alrex <aboten@lightstep.com>
378 lines
12 KiB
INI
378 lines
12 KiB
INI
[tox]
|
|
skipsdist = True
|
|
skip_missing_interpreters = True
|
|
envlist =
|
|
; Environments are organized by individual package, allowing
|
|
; for specifying supported Python versions per package.
|
|
; opentelemetry-api
|
|
py3{4,5,6,7,8}-test-api
|
|
pypy3-test-api
|
|
|
|
; opentelemetry-proto
|
|
py3{4,5,6,7,8}-test-proto
|
|
pypy3-test-proto
|
|
|
|
; opentelemetry-sdk
|
|
py3{4,5,6,7,8}-test-sdk
|
|
pypy3-test-sdk
|
|
|
|
; opentelemetry-instrumentation
|
|
py3{5,6,7,8}-test-instrumentation
|
|
pypy3-test-instrumentation
|
|
|
|
; opentelemetry-example-app
|
|
py3{4,5,6,7,8}-test-example-app
|
|
pypy3-test-example-app
|
|
|
|
; docs/getting-started
|
|
py3{4,5,6,7,8}-test-getting-started
|
|
pypy3-test-getting-started
|
|
|
|
; opentelemetry-ext-aiohttp-client
|
|
py3{5,6,7,8}-test-ext-aiohttp-client
|
|
pypy3-test-ext-aiohttp-client
|
|
|
|
; opentelemetry-ext-botocore
|
|
py3{6,7,8}-test-ext-botocore
|
|
pypy3-test-ext-botocore
|
|
|
|
; opentelemetry-ext-django
|
|
py3{4,5,6,7,8}-test-ext-django
|
|
pypy3-test-ext-django
|
|
|
|
; opentelemetry-ext-dbapi
|
|
py3{4,5,6,7,8}-test-ext-dbapi
|
|
pypy3-test-ext-dbapi
|
|
|
|
; opentelemetry-ext-boto
|
|
py3{5,6,7,8}-test-ext-boto
|
|
pypy3-test-ext-boto
|
|
|
|
; opentelemetry-ext-flask
|
|
py3{4,5,6,7,8}-test-ext-flask
|
|
pypy3-test-ext-flask
|
|
|
|
; opentelemetry-ext-requests
|
|
py3{4,5,6,7,8}-test-ext-requests
|
|
pypy3-test-ext-requests
|
|
|
|
; opentelemetry-ext-jinja2
|
|
py3{4,5,6,7,8}-test-ext-jinja2
|
|
pypy3-test-ext-jinja2
|
|
|
|
; opentelemetry-ext-jaeger
|
|
py3{4,5,6,7,8}-test-ext-jaeger
|
|
pypy3-test-ext-jaeger
|
|
|
|
; opentelemetry-ext-datadog
|
|
py3{5,6,7,8}-test-ext-datadog
|
|
|
|
; opentelemetry-ext-mysql
|
|
py3{4,5,6,7,8}-test-ext-mysql
|
|
pypy3-test-ext-mysql
|
|
|
|
; opentelemetry-ext-opencensusexporter
|
|
py3{4,5,6,7,8}-test-ext-opencensusexporter
|
|
; ext-opencensusexporter intentionally excluded from pypy3
|
|
|
|
; opentelemetry-ext-otlp
|
|
py3{5,6,7,8}-test-ext-otlp
|
|
; ext-otlp intentionally excluded from pypy3
|
|
|
|
; opentelemetry-ext-prometheus
|
|
py3{4,5,6,7,8}-test-ext-prometheus
|
|
pypy3-test-ext-prometheus
|
|
|
|
; opentelemetry-ext-psycopg2
|
|
py3{4,5,6,7,8}-test-ext-psycopg2
|
|
; ext-psycopg2 intentionally excluded from pypy3
|
|
|
|
; opentelemetry-ext-pymongo
|
|
py3{4,5,6,7,8}-test-ext-pymongo
|
|
pypy3-test-ext-pymongo
|
|
|
|
; opentelemetry-ext-pymysql
|
|
py3{4,5,6,7,8}-test-ext-pymysql
|
|
pypy3-test-ext-pymysql
|
|
|
|
; opentelemetry-ext-pyramid
|
|
py3{4,5,6,7,8}-test-ext-pyramid
|
|
pypy3-test-ext-pyramid
|
|
|
|
; opentelemetry-ext-asgi
|
|
py3{5,6,7,8}-test-ext-asgi
|
|
pypy3-test-ext-asgi
|
|
|
|
; opentelemetry-ext-sqlite3
|
|
py3{4,5,6,7,8}-test-ext-sqlite3
|
|
pypy3-test-ext-sqlite3
|
|
|
|
; opentelemetry-ext-wsgi
|
|
py3{4,5,6,7,8}-test-ext-wsgi
|
|
pypy3-test-ext-wsgi
|
|
|
|
; opentelemetry-ext-zipkin
|
|
py3{4,5,6,7,8}-test-ext-zipkin
|
|
pypy3-test-ext-zipkin
|
|
|
|
; opentelemetry-opentracing-shim
|
|
py3{4,5,6,7,8}-test-opentracing-shim
|
|
pypy3-test-opentracing-shim
|
|
|
|
; opentelemetry-opentracing-shim
|
|
py3{4,5,6,7,8}-test-opentracing-shim
|
|
pypy3-test-opentracing-shim
|
|
|
|
; opentelemetry-ext-grpc
|
|
py3{4,5,6,7,8}-test-ext-grpc
|
|
|
|
; opentelemetry-ext-sqlalchemy
|
|
py3{4,5,6,7,8}-test-ext-sqlalchemy
|
|
pypy3-test-ext-sqlalchemy
|
|
|
|
; opentelemetry-ext-redis
|
|
py3{4,5,6,7,8}-test-ext-redis
|
|
pypy3-test-ext-redis
|
|
|
|
; opentelemetry-ext-system-metrics
|
|
py3{4,5,6,7,8}-test-ext-system-metrics
|
|
; ext-system-metrics intentionally excluded from pypy3
|
|
; known limitation: gc.get_count won't work under pypy
|
|
|
|
; Coverage is temporarily disabled for pypy3 due to the pytest bug.
|
|
; pypy3-coverage
|
|
|
|
lint
|
|
py38-tracecontext
|
|
py38-{mypy,mypyinstalled}
|
|
docs
|
|
docker-tests
|
|
|
|
[testenv]
|
|
deps =
|
|
-c dev-requirements.txt
|
|
test: pytest
|
|
coverage: pytest
|
|
coverage: pytest-cov
|
|
mypy,mypyinstalled: mypy
|
|
|
|
setenv =
|
|
mypy: MYPYPATH={toxinidir}/opentelemetry-api/src/
|
|
|
|
changedir =
|
|
test-api: opentelemetry-api/tests
|
|
test-sdk: opentelemetry-sdk/tests
|
|
test-proto: opentelemetry-proto/tests
|
|
test-instrumentation: opentelemetry-instrumentation/tests
|
|
test-ext-grpc: ext/opentelemetry-ext-grpc/tests
|
|
test-ext-aiohttp-client: ext/opentelemetry-ext-aiohttp-client/tests
|
|
test-ext-requests: ext/opentelemetry-ext-requests/tests
|
|
test-ext-jinja2: ext/opentelemetry-ext-jinja2/tests
|
|
test-ext-jaeger: ext/opentelemetry-ext-jaeger/tests
|
|
test-ext-datadog: ext/opentelemetry-ext-datadog/tests
|
|
test-ext-dbapi: ext/opentelemetry-ext-dbapi/tests
|
|
test-ext-django: ext/opentelemetry-ext-django/tests
|
|
test-ext-mysql: ext/opentelemetry-ext-mysql/tests
|
|
test-ext-opencensusexporter: ext/opentelemetry-ext-opencensusexporter/tests
|
|
test-ext-otlp: ext/opentelemetry-ext-otlp/tests
|
|
test-ext-prometheus: ext/opentelemetry-ext-prometheus/tests
|
|
test-ext-pymongo: ext/opentelemetry-ext-pymongo/tests
|
|
test-exporter-cloud-trace: ext/opentelemetry-exporter-cloud-trace/tests
|
|
test-ext-psycopg2: ext/opentelemetry-ext-psycopg2/tests
|
|
test-ext-pymysql: ext/opentelemetry-ext-pymysql/tests
|
|
test-ext-pyramid: ext/opentelemetry-ext-pyramid/tests
|
|
test-ext-asgi: ext/opentelemetry-ext-asgi/tests
|
|
test-ext-sqlite3: ext/opentelemetry-ext-sqlite3/tests
|
|
test-ext-wsgi: ext/opentelemetry-ext-wsgi/tests
|
|
test-ext-zipkin: ext/opentelemetry-ext-zipkin/tests
|
|
test-ext-boto: ext/opentelemetry-ext-boto/tests
|
|
test-ext-botocore: ext/opentelemetry-ext-botocore/tests
|
|
test-ext-flask: ext/opentelemetry-ext-flask/tests
|
|
test-example-app: docs/examples/opentelemetry-example-app/tests
|
|
test-getting-started: docs/getting_started/tests
|
|
test-opentracing-shim: ext/opentelemetry-ext-opentracing-shim/tests
|
|
test-ext-sqlalchemy: ext/opentelemetry-ext-sqlalchemy/tests
|
|
test-ext-redis: ext/opentelemetry-ext-redis/tests
|
|
test-ext-system-metrics: ext/opentelemetry-ext-system-metrics/tests
|
|
|
|
commands_pre =
|
|
; Install without -e to test the actual installation
|
|
py3{4,5,6,7}: 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 {toxinidir}/opentelemetry-api {toxinidir}/opentelemetry-sdk {toxinidir}/tests/util
|
|
|
|
test-proto: pip install {toxinidir}/opentelemetry-proto
|
|
ext,instrumentation: pip install {toxinidir}/opentelemetry-instrumentation
|
|
|
|
example-app: pip install {toxinidir}/opentelemetry-instrumentation {toxinidir}/ext/opentelemetry-ext-requests {toxinidir}/ext/opentelemetry-ext-wsgi {toxinidir}/ext/opentelemetry-ext-flask {toxinidir}/docs/examples/opentelemetry-example-app
|
|
|
|
getting-started: pip install -e {toxinidir}/opentelemetry-instrumentation -e {toxinidir}/ext/opentelemetry-ext-requests -e {toxinidir}/ext/opentelemetry-ext-wsgi -e {toxinidir}/ext/opentelemetry-ext-flask
|
|
|
|
grpc: pip install {toxinidir}/ext/opentelemetry-ext-grpc[test]
|
|
|
|
wsgi,flask,django,asgi,pyramid: pip install {toxinidir}/tests/util
|
|
wsgi,flask,django,pyramid: pip install {toxinidir}/ext/opentelemetry-ext-wsgi
|
|
|
|
asgi: pip install {toxinidir}/ext/opentelemetry-ext-asgi
|
|
|
|
boto: pip install {toxinidir}/ext/opentelemetry-ext-boto[test]
|
|
|
|
flask: pip install {toxinidir}/ext/opentelemetry-ext-flask[test]
|
|
|
|
botocore: pip install {toxinidir}/opentelemetry-instrumentation
|
|
botocore: pip install {toxinidir}/ext/opentelemetry-ext-botocore[test]
|
|
|
|
dbapi: pip install {toxinidir}/ext/opentelemetry-ext-dbapi[test]
|
|
|
|
django: pip install {toxinidir}/ext/opentelemetry-ext-django[test]
|
|
|
|
mysql: pip install {toxinidir}/ext/opentelemetry-ext-dbapi {toxinidir}/ext/opentelemetry-ext-mysql[test]
|
|
|
|
opencensusexporter: pip install {toxinidir}/ext/opentelemetry-ext-opencensusexporter
|
|
|
|
otlp: pip install {toxinidir}/opentelemetry-proto
|
|
otlp: pip install {toxinidir}/ext/opentelemetry-ext-otlp
|
|
|
|
prometheus: pip install {toxinidir}/ext/opentelemetry-ext-prometheus
|
|
|
|
pymongo: pip install {toxinidir}/ext/opentelemetry-ext-pymongo[test]
|
|
|
|
psycopg2: pip install {toxinidir}/ext/opentelemetry-ext-dbapi {toxinidir}/ext/opentelemetry-ext-psycopg2 {toxinidir}/ext/opentelemetry-ext-psycopg2[test]
|
|
|
|
pymysql: pip install {toxinidir}/ext/opentelemetry-ext-dbapi {toxinidir}/ext/opentelemetry-ext-pymysql[test]
|
|
|
|
pyramid: pip install {toxinidir}/ext/opentelemetry-ext-pyramid[test]
|
|
|
|
sqlite3: pip install {toxinidir}/ext/opentelemetry-ext-dbapi {toxinidir}/ext/opentelemetry-ext-sqlite3[test]
|
|
|
|
redis: pip install {toxinidir}/ext/opentelemetry-ext-redis[test]
|
|
|
|
requests: pip install {toxinidir}/ext/opentelemetry-ext-requests[test]
|
|
|
|
jinja2: pip install {toxinidir}/ext/opentelemetry-ext-jinja2[test]
|
|
|
|
aiohttp-client: pip install {toxinidir}/opentelemetry-sdk {toxinidir}/ext/opentelemetry-ext-aiohttp-client
|
|
|
|
jaeger: pip install {toxinidir}/ext/opentelemetry-ext-jaeger
|
|
|
|
opentracing-shim: pip install {toxinidir}/opentelemetry-sdk
|
|
opentracing-shim: pip install {toxinidir}/ext/opentelemetry-ext-opentracing-shim
|
|
|
|
datadog: pip install {toxinidir}/opentelemetry-sdk {toxinidir}/ext/opentelemetry-ext-datadog
|
|
|
|
zipkin: pip install {toxinidir}/ext/opentelemetry-ext-zipkin
|
|
|
|
sqlalchemy: pip install {toxinidir}/ext/opentelemetry-ext-sqlalchemy
|
|
|
|
system-metrics: pip install {toxinidir}/ext/opentelemetry-ext-system-metrics[test]
|
|
|
|
; In order to get a healthy coverage report,
|
|
; we have to install packages in editable mode.
|
|
coverage: python {toxinidir}/scripts/eachdist.py install --editable
|
|
|
|
; Using file:// here because otherwise tox invokes just "pip install
|
|
; opentelemetry-api", leading to an error
|
|
mypyinstalled: pip install file://{toxinidir}/opentelemetry-api/
|
|
|
|
commands =
|
|
test: pytest {posargs}
|
|
coverage: {toxinidir}/scripts/coverage.sh
|
|
|
|
mypy: mypy --namespace-packages opentelemetry-api/src/opentelemetry/
|
|
; For test code, we don't want to enforce the full mypy strictness
|
|
mypy: mypy --namespace-packages --config-file=mypy-relaxed.ini opentelemetry-api/tests/
|
|
|
|
; Test that mypy can pick up typeinfo from an installed package (otherwise,
|
|
; implicit Any due to unfollowed import would result).
|
|
mypyinstalled: mypy --namespace-packages opentelemetry-api/tests/mypysmoke.py --strict
|
|
|
|
[testenv:py34-test-opentracing-shim]
|
|
commands =
|
|
pytest --ignore-glob='*[asyncio].py'
|
|
|
|
[testenv:lint]
|
|
basepython: python3.8
|
|
recreate = True
|
|
deps =
|
|
-c dev-requirements.txt
|
|
pylint
|
|
flake8
|
|
isort
|
|
black
|
|
psutil
|
|
readme_renderer
|
|
httpretty
|
|
|
|
commands_pre =
|
|
python scripts/eachdist.py install --editable
|
|
|
|
commands =
|
|
python scripts/eachdist.py lint --check-only
|
|
|
|
[testenv:docs]
|
|
deps =
|
|
-c {toxinidir}/dev-requirements.txt
|
|
-r {toxinidir}/docs-requirements.txt
|
|
|
|
changedir = docs
|
|
|
|
commands =
|
|
sphinx-build -E -a -W -b html -T . _build/html
|
|
|
|
[testenv:py38-tracecontext]
|
|
basepython: python3.8
|
|
deps =
|
|
# needed for tracecontext
|
|
aiohttp~=3.6
|
|
# needed for example trace integration
|
|
flask~=1.1
|
|
requests~=2.7
|
|
|
|
commands_pre =
|
|
pip install -e {toxinidir}/opentelemetry-api \
|
|
-e {toxinidir}/opentelemetry-instrumentation \
|
|
-e {toxinidir}/opentelemetry-sdk \
|
|
-e {toxinidir}/ext/opentelemetry-ext-requests \
|
|
-e {toxinidir}/ext/opentelemetry-ext-wsgi \
|
|
-e {toxinidir}/ext/opentelemetry-ext-flask
|
|
|
|
commands =
|
|
{toxinidir}/scripts/tracecontext-integration-test.sh
|
|
|
|
[testenv:docker-tests]
|
|
deps =
|
|
pytest
|
|
docker-compose >= 1.25.2
|
|
mysql-connector-python ~= 8.0
|
|
pymongo ~= 3.1
|
|
pymysql ~= 0.9.3
|
|
psycopg2-binary ~= 2.8.4
|
|
sqlalchemy ~= 1.3.16
|
|
redis ~= 3.3.11
|
|
|
|
changedir =
|
|
ext/opentelemetry-ext-docker-tests/tests
|
|
|
|
commands_pre =
|
|
pip install -e {toxinidir}/opentelemetry-api \
|
|
-e {toxinidir}/opentelemetry-sdk \
|
|
-e {toxinidir}/opentelemetry-instrumentation \
|
|
-e {toxinidir}/tests/util \
|
|
-e {toxinidir}/ext/opentelemetry-ext-dbapi \
|
|
-e {toxinidir}/ext/opentelemetry-ext-mysql \
|
|
-e {toxinidir}/ext/opentelemetry-ext-psycopg2 \
|
|
-e {toxinidir}/ext/opentelemetry-ext-pymongo \
|
|
-e {toxinidir}/ext/opentelemetry-ext-pymysql \
|
|
-e {toxinidir}/ext/opentelemetry-ext-sqlalchemy \
|
|
-e {toxinidir}/ext/opentelemetry-ext-redis \
|
|
-e {toxinidir}/ext/opentelemetry-ext-system-metrics \
|
|
-e {toxinidir}/ext/opentelemetry-ext-opencensusexporter
|
|
docker-compose up -d
|
|
python check_availability.py
|
|
commands =
|
|
pytest {posargs}
|
|
|
|
commands_post =
|
|
docker-compose down
|