1# Tox (http://codespeak.net/~hpk/tox/) is a tool for running tests
2# in multiple virtualenvs. This configuration file will run the
3# test suite on all supported python versions. To use it, "pip install tox"
4# and then run "tox" from this directory.
5
6[tox]
7envlist =
8    # core
9    py{27,34,35,36,37}
10    pypy
11    flake8
12    # contrib
13    {py35,py36,py37}-django-dev
14    {py35,py36,py37}-django-{200}
15    {py27,py35}-django-111
16    {py27,py34,py35,py36}-django-{18,19,110}
17    {py27,py34,py35,py36}-django-18
18    {py27,py34}-django-17
19    py27-django-16
20    {py27,py35,py36,py37}-flask-{10,11}
21    py37-flask-12
22    py37-flask-dev
23    py27-celery-{3,4}
24    py{27,37}-lambda
25    py{35,36,37}-sanic-07
26
27[testenv]
28deps =
29    py27: gevent
30    django-{16,17,18}: pytest-django<3.0
31    django-{19,110,110,111,200,dev}: pytest-django>=3.0,<3.3
32    django-{18,19,110}: django-tastypie==0.14
33    django-16: Django>=1.6,<1.7
34    django-17: Django>=1.7,<1.8
35    django-18: Django>=1.8,<1.9
36    django-19: Django>=1.9,<1.10
37    django-110: Django>=1.10,<1.11
38    django-111: Django>=1.11,<1.12
39    django-200: Django>=2.0,<2.1
40    django-dev: git+https://github.com/django/django.git#egg=Django
41    flask-10: Flask>=0.10,<0.11
42    flask-11: Flask>=0.11,<0.12
43    flask-12: Flask>=0.12,<0.13
44    flask-dev: git+https://github.com/pallets/flask.git#egg=flask
45    flask-dev: flask-login
46    celery-3: Celery>=3.1,<3.2
47    celery-4: Celery>=4.0,<4.1
48    sanic-07: sanic>=0.7,<0.8
49    sanic-07: aiohttp
50   # fix: git+https://github.com/pytest-dev/pytest-django.git#egg=pytest_django
51setenv =
52    PYTHONDONTWRITEBYTECODE=1
53    TESTPATH=tests
54    DJANGO_SETTINGS_MODULE=tests.contrib.django.settings
55    django: TESTPATH=tests/contrib/django
56    flask: TESTPATH=tests/contrib/flask
57    sanic: TESTPATH=tests/contrib/sanic
58    celery: TESTPATH=tests/contrib/test_celery.py
59    lambda: TESTPATH=tests/contrib/awslambda
60usedevelop = true
61extras = tests
62
63basepython =
64    py27: python2.7
65    py34: python3.4
66    py35: python3.5
67    py36: python3.6
68    py37: python3.7
69    pypy: pypy
70
71commands =
72    py.test {env:TESTPATH} {posargs} --max-slave-restart=4
73
74[testenv:pypy]
75commands:
76    pypy: py.test {env:TESTPATH} {posargs} -n0
77
78# Linters
79
80
81
82[testenv:flake8]
83basepython = python3.6
84skip_install = true
85deps =
86    flake8
87    flake8-docstrings>=0.2.7
88    flake8-import-order>=0.9
89commands =
90    flake8 raven/ setup.py
91
92[testenv:pylint]
93basepython = python3.6
94skip_install = true
95deps =
96    pyflakes
97    pylint
98commands =
99    pylint raven/ setup.py
100
101
102[testenv:bandit]
103basepython = python3.6
104skip_install = true
105deps =
106    bandit
107commands =
108    bandit -r raven/ -c .bandit.yml
109
110[testenv:linters]
111basepython = python3.6
112skip_install = true
113deps =
114    {[testenv:flake8]deps}
115    {[testenv:pylint]deps}
116    {[testenv:readme]deps}
117    {[testenv:bandit]deps}
118commands =
119    {[testenv:flake8]commands}
120    {[testenv:pylint]commands}
121    {[testenv:readme]commands}
122    {[testenv:bandit]commands}
123
124[testenv:readme]
125basepython = python3.6
126deps =
127    readme_renderer
128commands =
129    python setup.py check -r -s
130
131# Release tooling
132[testenv:build]
133basepython = python3.6
134skip_install = true
135deps =
136    wheel
137    setuptools
138commands =
139    python setup.py -q sdist bdist_wheel
140
141[testenv:release]
142basepython = python3.6
143skip_install = true
144deps =
145    bumpversion
146commands =
147    bumpversion --tag --commit {posargs} release
148
149[testenv:minor]
150basepython = python3.6
151skip_install = true
152deps =
153    bumpversion
154commands =
155    bumpversion --commit {posargs} minor
156
157[testenv:dev]
158basepython = python3.6
159skip_install = true
160deps =
161    bumpversion
162commands =
163    bumpversion {posargs} --commit {posargs} patch
164