Be more explicit about when we do and don't install the project in
different testenvs by setting skip_install. This is currently
redundant, but a sensible safeguard in case the implicit behavior
from skipsdist and no usedevelop ever changes.
Use shutil.rmtree() in place of calling `rm` so that we won't need
an allowlist of executables outside the venv.
Switch to tox's {envpython} replacement macro rather than invoking
the interpreter by its assumed name, for improved portability.
Inherit {[testenv]deps} in the deps list for any testenv which needs
to extend it rather than duplicating its contents, for the sake of
maintainability.
Don't bother listing flake8 as an explicit dep in its testenv, since
the flake8-bugbear plugin will pull it in as a requirement anyway.
Update the DeprecationWarning comment about pyparsing now that the
fix is available in 3.0.8 (but still not updated where it's being
vendored).
# 'language_level' not set, using 2 for now (Py2). This will change in a
# later release!" but this can't be matched by message because it has a comma
# py311... pip._vendor.pyparsing.core and pkg_resources._vendor.pyparsing raise
# 'language_level' not set, using 2 for now (Py2). This will change in a
# later release!" but this can't be matched by message because it has a comma
# py311... pip._vendor.pyparsing.core and pkg_resources._vendor.pyparsing raise
-# DeprecationWarning "module 'sre_constants' is deprecated" until a new
-# release containing https://github.com/pyparsing/pyparsing/commit/3c03942 is
-# vendored into pip and pkg_resources
+# DeprecationWarning "module 'sre_constants' is deprecated" until
+# pyparsing>=3.0.8 is vendored into pip and pkg_resources
# py310... distutils.command.install raises DeprecationWarning "The
# distutils.sysconfig module is deprecated, use sysconfig instead" but this
# can't be matched by message because it contains a comma
# py310... distutils.command.install raises DeprecationWarning "The
# distutils.sysconfig module is deprecated, use sysconfig instead" but this
# can't be matched by message because it contains a comma
[testenv:bandit]
description = check for potential security risks in source code
[testenv:bandit]
description = check for potential security risks in source code
deps = bandit
commands = bandit -r mudpy -x mudpy/tests {posargs}
[testenv:codespell]
description = find common spelling mistakes in code and documentation
deps = bandit
commands = bandit -r mudpy -x mudpy/tests {posargs}
[testenv:codespell]
description = find common spelling mistakes in code and documentation
deps = codespell
commands = codespell {posargs}
deps = codespell
commands = codespell {posargs}
[testenv:dist]
description = build release artifacts and check for conformance
[testenv:dist]
description = build release artifacts and check for conformance
-allowlist_externals = rm
deps =
build
twine
commands =
deps =
build
twine
commands =
- rm -fr {toxinidir}/dist
- python -m build
+ {envpython} -c "import shutil; shutil.rmtree('{toxinidir}/dist', ignore_errors=True)"
+ {envpython} -m build
twine check --strict {toxinidir}/dist/*
[testenv:docs]
# Build an sdist into a temporary location so we'll have AUTHORS and ChangeLog
# files to include.
description = generate hypertext documentation
twine check --strict {toxinidir}/dist/*
[testenv:docs]
# Build an sdist into a temporary location so we'll have AUTHORS and ChangeLog
# files to include.
description = generate hypertext documentation
-allowlist_externals = rm
- rm -fr {toxinidir}/doc/build
- python -m build --outdir={toxinidir}/doc/build/dist --sdist
+ {envpython} -c "import shutil; shutil.rmtree('{toxinidir}/doc/build', ignore_errors=True)"
+ {envpython} -m build --outdir={toxinidir}/doc/build/dist --sdist
sphinx-build -W -d doc/build/doctrees -b html doc/source/ doc/build/html
[testenv:flake8]
description = style checks and static analysis of source code
sphinx-build -W -d doc/build/doctrees -b html doc/source/ doc/build/html
[testenv:flake8]
description = style checks and static analysis of source code
-deps =
- flake8
- flake8-bugbear
+skip_install = True
+deps = flake8-bugbear
commands = flake8 {posargs}
[testenv:selftest_config]
commands = flake8 {posargs}
[testenv:selftest_config]
# them with the same style we enforce for those carried in the repository.
description = test data files for correct syntax and formatting
deps =
# them with the same style we enforce for those carried in the repository.
description = test data files for correct syntax and formatting
deps =
yamllint
commands =
mudpy_selftest mudpy/tests/fixtures/test_daemon.yaml
yamllint
commands =
mudpy_selftest mudpy/tests/fixtures/test_daemon.yaml