python: add tox support
This is intended to be a manually run, non-CI script. Use tox to test the linters against all python versions from 3.6 to 3.10. This will only work if you actually have those versions installed locally, but Fedora makes this easy: > sudo dnf install python3.6 python3.7 python3.8 python3.9 python3.10 Unlike the pipenv tests (make venv-check), this pulls "whichever" versions of the python packages, so they are unpinned and may break as time goes on. In the case that breakages are found, setup.cfg should be amended accordingly to avoid the bad dependant versions, or the code should be amended to work around the issue. With confidence that the tests pass on 3.6 through 3.10 inclusive, add the appropriate classifiers to setup.cfg to indicate which versions we claim to support. Tox 3.18.0 or above is required to use the 'allowlist_externals' option. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Cleber Rosa <crosa@redhat.com> Tested-by: Cleber Rosa <crosa@redhat.com> Message-id: 20210527211715.394144-31-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
f9c0600f02
commit
3c8de38c85
1
python/.gitignore
vendored
1
python/.gitignore
vendored
@ -13,3 +13,4 @@ qemu.egg-info/
|
|||||||
|
|
||||||
# virtual environments (pipenv et al)
|
# virtual environments (pipenv et al)
|
||||||
.venv/
|
.venv/
|
||||||
|
.tox/
|
||||||
|
@ -16,6 +16,8 @@ help:
|
|||||||
@echo ""
|
@echo ""
|
||||||
@echo "make check: run linters using the current environment."
|
@echo "make check: run linters using the current environment."
|
||||||
@echo ""
|
@echo ""
|
||||||
|
@echo "make check-tox: run linters using multiple python versions."
|
||||||
|
@echo ""
|
||||||
@echo "make clean: remove package build output."
|
@echo "make clean: remove package build output."
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "make distclean: remove venv files, qemu package forwarder,"
|
@echo "make distclean: remove venv files, qemu package forwarder,"
|
||||||
@ -36,8 +38,11 @@ develop:
|
|||||||
check:
|
check:
|
||||||
@avocado --config avocado.cfg run tests/
|
@avocado --config avocado.cfg run tests/
|
||||||
|
|
||||||
|
check-tox:
|
||||||
|
@tox
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
python3 setup.py clean --all
|
python3 setup.py clean --all
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -rf qemu.egg-info/ .venv/ dist/
|
rm -rf qemu.egg-info/ .venv/ .tox/ dist/
|
||||||
|
@ -14,6 +14,11 @@ classifiers =
|
|||||||
Natural Language :: English
|
Natural Language :: English
|
||||||
Operating System :: OS Independent
|
Operating System :: OS Independent
|
||||||
Programming Language :: Python :: 3 :: Only
|
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]
|
[options]
|
||||||
python_requires = >= 3.6
|
python_requires = >= 3.6
|
||||||
@ -30,12 +35,13 @@ devel =
|
|||||||
isort >= 5.1.2
|
isort >= 5.1.2
|
||||||
mypy >= 0.770
|
mypy >= 0.770
|
||||||
pylint >= 2.8.0
|
pylint >= 2.8.0
|
||||||
|
tox >= 3.18.0
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
extend-ignore = E722 # Prefer pylint's bare-except checks to flake8's
|
extend-ignore = E722 # Prefer pylint's bare-except checks to flake8's
|
||||||
exclude = __pycache__,
|
exclude = __pycache__,
|
||||||
.venv,
|
.venv,
|
||||||
|
.tox,
|
||||||
|
|
||||||
[mypy]
|
[mypy]
|
||||||
strict = True
|
strict = True
|
||||||
@ -79,3 +85,18 @@ include_trailing_comma=True
|
|||||||
line_length=72
|
line_length=72
|
||||||
lines_after_imports=2
|
lines_after_imports=2
|
||||||
multi_line_output=3
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user