[tox]
-envlist = {,ci-}py{36,37,38,39,310,py3},fuzz
+envlist = {,ci-}py{36,37,38,39,310,311,py3},fuzz,run_self
[testenv]
setenv = PYTHONPATH = {toxinidir}/src
--cov --cov-append {posargs}
coverage report
+[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
+ pytest tests \
+ --run-optional no_jupyter \
+ !ci: --numprocesses auto \
+ ci: --numprocesses 1 \
+ --cov {posargs}
+ pip install -e .[jupyter]
+ pytest tests --run-optional jupyter \
+ -m jupyter \
+ !ci: --numprocesses auto \
+ ci: --numprocesses 1 \
+ --cov --cov-append {posargs}
+ coverage report
+
[testenv:fuzz]
skip_install = True
deps =
-r{toxinidir}/test_requirements.txt
hypothesmith
- lark-parser < 0.10.0
-; lark-parser's version is set due to a bug in hypothesis. Once it solved, that would be fixed.
+ lark-parser
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 {toxinidir}/setup.py