[tox] envlist = py36, py37, py38, py39, pyNightly, {py36,py37,py38,py39,pyNightly}-no-ext, lint, check, security, docs [testenv] usedevelop = True setenv = {py36,py37,py38,py39,pyNightly}-no-ext: SANIC_NO_UJSON=1 {py36,py37,py38,py39,pyNightly}-no-ext: SANIC_NO_UVLOOP=1 deps = coverage==5.3 pytest==5.2.1 pytest-cov pytest-sanic pytest-sugar pytest-benchmark pytest-dependency httpcore==0.11.* httpx==0.15.4 multidict>=5.0,<6.0 beautifulsoup4 gunicorn==20.0.4 uvicorn websockets>=8.1,<9.0 commands = pytest {posargs:tests --cov sanic} - coverage combine --append coverage report -m coverage html -i [testenv:lint] deps = flake8 black isort>=5.0.0 bandit commands = flake8 sanic black --config ./.black.toml --check --verbose sanic/ isort --check-only sanic [testenv:type-checking] deps = mypy commands = mypy sanic [testenv:check] deps = docutils pygments commands = python setup.py check -r -s [pytest] filterwarnings = ignore:.*async with lock.* instead:DeprecationWarning addopts = --strict-markers markers = asyncio [testenv:security] deps = bandit commands = bandit --recursive sanic --skip B404,B101 --exclude sanic/reloader_helpers.py [testenv:docs] platform = linux|linux2|darwin whitelist_externals = make deps = sphinx>=2.1.2 sphinx_rtd_theme>=0.4.3 recommonmark>=0.5.0 docutils pygments gunicorn==20.0.4 commands = make docs-test