aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/.gitignore1
-rw-r--r--python/Makefile7
-rw-r--r--python/setup.cfg23
3 files changed, 29 insertions, 2 deletions
diff --git a/python/.gitignore b/python/.gitignore
index 4ed144ceac..272ed223a8 100644
--- a/python/.gitignore
+++ b/python/.gitignore
@@ -13,3 +13,4 @@ qemu.egg-info/
# virtual environments (pipenv et al)
.venv/
+.tox/
diff --git a/python/Makefile b/python/Makefile
index a9da168955..b5621b0d54 100644
--- a/python/Makefile
+++ b/python/Makefile
@@ -16,6 +16,8 @@ help:
@echo ""
@echo "make check: run linters using the current environment."
@echo ""
+ @echo "make check-tox: run linters using multiple python versions."
+ @echo ""
@echo "make clean: remove package build output."
@echo ""
@echo "make distclean: remove venv files, qemu package forwarder,"
@@ -36,8 +38,11 @@ develop:
check:
@avocado --config avocado.cfg run tests/
+check-tox:
+ @tox
+
clean:
python3 setup.py clean --all
distclean: clean
- rm -rf qemu.egg-info/ .venv/ dist/
+ rm -rf qemu.egg-info/ .venv/ .tox/ dist/
diff --git a/python/setup.cfg b/python/setup.cfg
index fd32519490..0fcdec6f32 100644
--- a/python/setup.cfg
+++ b/python/setup.cfg
@@ -14,6 +14,11 @@ classifiers =
Natural Language :: English
Operating System :: OS Independent
Programming Language :: Python :: 3 :: Only
+ Programming Language :: Python :: 3.6
+ Programming Language :: Python :: 3.7
+ Programming Language :: Python :: 3.8
+ Programming Language :: Python :: 3.9
+ Programming Language :: Python :: 3.10
[options]
python_requires = >= 3.6
@@ -30,12 +35,13 @@ devel =
isort >= 5.1.2
mypy >= 0.770
pylint >= 2.8.0
-
+ tox >= 3.18.0
[flake8]
extend-ignore = E722 # Prefer pylint's bare-except checks to flake8's
exclude = __pycache__,
.venv,
+ .tox,
[mypy]
strict = True
@@ -79,3 +85,18 @@ include_trailing_comma=True
line_length=72
lines_after_imports=2
multi_line_output=3
+
+# tox (https://tox.readthedocs.io/) is a tool for running tests in
+# multiple virtualenvs. This configuration file will run the test suite
+# on all supported python versions. To use it, "pip install tox" and
+# then run "tox" from this directory. You will need all of these versions
+# of python available on your system to run this test.
+
+[tox:tox]
+envlist = py36, py37, py38, py39, py310
+
+[testenv]
+allowlist_externals = make
+deps = .[devel]
+commands =
+ make check