X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/204f76e0c02a12aeccb3ab708fe41f7e95435a29..6debce63bc2429b1680f8838592f2e56e3df6b27:/tox.ini?ds=sidebyside

diff --git a/tox.ini b/tox.ini
index cbb0f75..7af9e48 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,17 +1,53 @@
 [tox]
-envlist = py{36,37,38,39},fuzz
+envlist = {,ci-}py{36,37,38,39,310,py3},fuzz,run_self
 
 [testenv]
 setenv = PYTHONPATH = {toxinidir}/src
 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.
+# See https://github.com/psf/black/issues/2367.
+recreate = True
 deps =
     -r{toxinidir}/test_requirements.txt
+; parallelization is disabled on CI because pytest-dev/pytest-xdist#620 occurs too frequently
+; local runs can stay parallelized since they aren't rolling the dice so many times as like on CI
 commands =
     pip install -e .[d]
     coverage erase
-    coverage run -m pytest tests -m "not python2" {posargs}
-    pip install -e .[d,python2]
-    coverage run -m pytest tests -m "not without_python2" {posargs}
+    pytest tests --run-optional no_jupyter \
+        !ci: --numprocesses auto \
+        --cov {posargs}
+    pip install -e .[jupyter]
+    pytest tests --run-optional jupyter \
+        -m jupyter \
+        !ci: --numprocesses auto \
+        --cov --cov-append {posargs}
+    coverage report
+
+[testenv:{,ci-}pypy3]
+setenv = PYTHONPATH = {toxinidir}/src
+skip_install = True
+recreate = True
+deps =
+    -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]
@@ -19,10 +55,16 @@ 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 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