[tox]
-envlist = {,ci-}py{36,37,38,39,310,py3},fuzz
+isolated_build = true
+envlist = {,ci-}py{37,38,39,310,311,py3},fuzz,run_self
[testenv]
-setenv = PYTHONPATH = {toxinidir}/src
+setenv =
+ PYTHONPATH = {toxinidir}/src
+ PYTHONWARNDEFAULTENCODING = 1
skip_install = True
# We use `recreate=True` because otherwise, on the second run of `tox -e py`,
# the `no_jupyter` tests would run with the jupyter extra dependencies installed.
; a separate worker is required in ci due to https://foss.heptapod.net/pypy/pypy/-/issues/3317
; this seems to cause tox to wait forever
; remove this when pypy releases the bugfix
+commands =
+ pip install -e .[d]
+ pytest tests \
+ --run-optional no_jupyter \
+ !ci: --numprocesses auto \
+ ci: --numprocesses 1
+ pip install -e .[jupyter]
+ pytest tests --run-optional jupyter \
+ -m jupyter \
+ !ci: --numprocesses auto \
+ ci: --numprocesses 1
+
+[testenv:{,ci-}311]
+setenv =
+ PYTHONPATH = {toxinidir}/src
+ AIOHTTP_NO_EXTENSIONS = 1
+skip_install = True
+recreate = True
+deps =
+; We currently need > aiohttp 3.8.1 that is on PyPI for 3.11
+ git+https://github.com/aio-libs/aiohttp
+ -r{toxinidir}/test_requirements.txt
+; a separate worker is required in ci due to https://foss.heptapod.net/pypy/pypy/-/issues/3317
+; this seems to cause tox to wait forever
+; remove this when pypy releases the bugfix
commands =
pip install -e .[d]
coverage erase
commands =
pip install -e .[d]
coverage erase
- coverage run fuzz.py
+ coverage run {toxinidir}/scripts/fuzz.py
coverage report
+
+[testenv:run_self]
+setenv = PYTHONPATH = {toxinidir}/src
+skip_install = True
+commands =
+ pip install -e .[d]
+ black --check {toxinidir}/src {toxinidir}/tests