debian-python-sentry/tox.ini

212 lines
5.9 KiB
INI

# Tox (http://codespeak.net/~hpk/tox/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.
[tox]
envlist =
# === Core ===
py{2.7,3.4,3.5,3.6,3.7,3.8}
pypy
# === Integrations ===
# Formatting: 1 blank line between different integrations.
py3.7-django-{2.2,dev}
{py3.5,py3.6,py3.7}-django-{2.0,2.1}
{pypy,py2.7,py3.5}-django-1.11
{pypy,py2.7,py3.4,py3.5}-django-{1.8,1.9,1.10}
{pypy,py2.7,py3.4}-django-1.7
{pypy,py2.7}-django-1.6
{pypy,py2.7,py3.5,py3.6,py3.7,py3.8}-flask-{1.1,1.0,0.11,0.12,dev}
{pypy,py2.7,py3.5,py3.6,py3.7,py3.8}-bottle-0.12
{pypy,py2.7,py3.5,py3.6,py3.7,py3.8}-falcon-1.4
{pypy,py2.7,py3.5,py3.6,py3.7,py3.8}-falcon-2.0
{py3.5,py3.6,py3.7}-sanic-{0.8,18}
{pypy,py2.7,py3.5,py3.6,py3.7,py3.8}-celery-{4.1,4.2,4.3}
{pypy,py2.7}-celery-3
py2.7-beam-{12,13}
py3.7-beam-{12,13, master}
# The aws_lambda tests deploy to the real AWS and have their own matrix of Python versions.
py3.7-aws_lambda
{pypy,py2.7,py3.5,py3.6,py3.7,py3.8}-pyramid-{1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.10}
{pypy,py2.7,py3.5,py3.6}-rq-{0.6,0.7,0.8,0.9,0.10,0.11}
{pypy,py2.7,py3.5,py3.6,py3.7,py3.8}-rq-{0.12,0.13,1.0,1.1}
py3.7-aiohttp-{3.5,3.6}
{py3.7,py3.8}-tornado-{5,6}
{py2.7,py3.7}-requests
{py2.7,py3.7}-redis
py3.7-asgi
{py2.7,py3.7}-sqlalchemy-{1.2,1.3}
[testenv]
deps =
-r test-requirements.txt
django-{1.11,2.0,2.1,2.2}: djangorestframework>=3.0.0,<4.0.0
py3.7-django-{1.11,2.0,2.1,2.2}: channels>2
py3.7-django-{1.11,2.0,2.1,2.2}: pytest-asyncio
{py2.7,py3.7}-django-{1.11,2.2}: psycopg2-binary
django-{1.6,1.7,1.8}: pytest-django<3.0
django-{1.9,1.10,1.11,2.0,2.1,2.2,dev}: pytest-django>=3.0
django-1.6: Django>=1.6,<1.7
django-1.7: Django>=1.7,<1.8
django-1.8: Django>=1.8,<1.9
django-1.9: Django>=1.9,<1.10
django-1.10: Django>=1.10,<1.11
django-1.11: Django>=1.11,<1.12
django-2.0: Django>=2.0,<2.1
django-2.1: Django>=2.1,<2.2
django-2.2: Django>=2.2,<2.3
django-dev: git+https://github.com/django/django.git#egg=Django
flask: flask-login
flask-0.11: Flask>=0.11,<0.12
flask-0.12: Flask>=0.12,<0.13
flask-1.0: Flask>=1.0,<1.1
flask-1.1: Flask>=1.1,<1.2
flask-dev: git+https://github.com/pallets/flask.git#egg=flask
bottle-0.12: bottle>=0.12,<0.13
bottle-dev: git+https://github.com/bottlepy/bottle#egg=bottle
falcon-1.4: falcon>=1.4,<1.5
falcon-2.0: falcon>=2.0.0rc3,<3.0
sanic-0.8: sanic>=0.8,<0.9
sanic-18: sanic>=18.0,<19.0
{py3.5,py3.6}-sanic: aiocontextvars==0.2.1
sanic: aiohttp
beam-12: apache-beam>=2.12.0, <2.13.0
beam-13: apache-beam>=2.13.0, <2.14.0
beam-master: git+https://github.com/apache/beam#egg=apache-beam&subdirectory=sdks/python
celery-3: Celery>=3.1,<4.0
celery-4.1: Celery>=4.1,<4.2
celery-4.2: Celery>=4.2,<4.3
celery-4.3: Celery>=4.3,<4.4
requests: requests>=2.0
aws_lambda: boto3
pyramid-1.3: pyramid>=1.3,<1.4
pyramid-1.4: pyramid>=1.4,<1.5
pyramid-1.5: pyramid>=1.5,<1.6
pyramid-1.6: pyramid>=1.6,<1.7
pyramid-1.7: pyramid>=1.7,<1.8
pyramid-1.8: pyramid>=1.8,<1.9
pyramid-1.9: pyramid>=1.9,<1.10
pyramid-1.10: pyramid>=1.10,<1.11
rq-{0.6,0.7,0.8,0.9,0.10,0.11,0.12}: fakeredis<1.0
rq-{0.13,1.0,1.1}: fakeredis>=1.0
# https://github.com/jamesls/fakeredis/issues/245
rq: redis<3.2.2
rq-0.6: rq>=0.6,<0.7
rq-0.7: rq>=0.7,<0.8
rq-0.8: rq>=0.8,<0.9
rq-0.9: rq>=0.9,<0.10
rq-0.10: rq>=0.10,<0.11
rq-0.11: rq>=0.11,<0.12
rq-0.12: rq>=0.12,<0.13
rq-0.13: rq>=0.13,<0.14
rq-1.0: rq>=1.0,<1.1
rq-1.1: rq>=1.1,<1.2
aiohttp-3.4: aiohttp>=3.4.0,<3.5.0
aiohttp-3.5: aiohttp>=3.5.0,<3.6.0
aiohttp: pytest-aiohttp
tornado-5: tornado>=5,<6
tornado-6: tornado>=6.0a1
redis: fakeredis
# https://github.com/jamesls/fakeredis/issues/245
redis: redis<3.2.2
asgi: starlette
asgi: requests
sqlalchemy-1.2: sqlalchemy>=1.2,<1.3
sqlalchemy-1.3: sqlalchemy>=1.3,<1.4
linters: black
linters: flake8
linters: flake8-import-order
linters: mypy>=0.720
# https://github.com/PyCQA/flake8-bugbear/pull/77
linters: git+https://github.com/untitaker/flake8-bugbear#branch=fix/b901-yield-expr
setenv =
PYTHONDONTWRITEBYTECODE=1
TESTPATH=tests
beam: TESTPATH=tests/integrations/beam
django: TESTPATH=tests/integrations/django
flask: TESTPATH=tests/integrations/flask
bottle: TESTPATH=tests/integrations/bottle
falcon: TESTPATH=tests/integrations/falcon
celery: TESTPATH=tests/integrations/celery
requests: TESTPATH=tests/integrations/requests
aws_lambda: TESTPATH=tests/integrations/aws_lambda
sanic: TESTPATH=tests/integrations/sanic
pyramid: TESTPATH=tests/integrations/pyramid
rq: TESTPATH=tests/integrations/rq
aiohttp: TESTPATH=tests/integrations/aiohttp
tornado: TESTPATH=tests/integrations/tornado
redis: TESTPATH=tests/integrations/redis
asgi: TESTPATH=tests/integrations/asgi
sqlalchemy: TESTPATH=tests/integrations/sqlalchemy
COVERAGE_FILE=.coverage-{envname}
passenv =
SENTRY_PYTHON_TEST_AWS_ACCESS_KEY_ID
SENTRY_PYTHON_TEST_AWS_SECRET_ACCESS_KEY
SENTRY_PYTHON_TEST_AWS_IAM_ROLE
SENTRY_PYTHON_TEST_POSTGRES_USER
SENTRY_PYTHON_TEST_POSTGRES_NAME
usedevelop = True
extras =
flask: flask
bottle: bottle
falcon: falcon
basepython =
py2.7: python2.7
py3.4: python3.4
py3.5: python3.5
py3.6: python3.6
py3.7: python3.7
py3.8: python3.8
linters: python3
pypy: pypy
commands =
py.test {env:TESTPATH} {posargs}
[testenv:linters]
commands =
flake8 tests examples sentry_sdk
black --check tests examples sentry_sdk
mypy examples sentry_sdk