Update noxfile.py to work with upstream nox

This commit is contained in:
Pedro Algarvio 2020-06-08 09:14:07 +01:00 committed by Daniel Wozniak
parent 39e74066d0
commit 16551e45fe
2 changed files with 166 additions and 38 deletions

1
changelog/57583.fixed Normal file
View file

@ -0,0 +1 @@
Allow running nox sessions either using our `nox-py2 fork <https://github.com/s0undt3ch/nox/tree/hotfix/py2-release>`_ or upstream `nox <https://github.com/theacodes/nox>`_.

View file

@ -68,6 +68,28 @@ RUNTESTS_LOGFILE = os.path.join(
os.environ[str("PYTHONDONTWRITEBYTECODE")] = str("1")
def find_session_runner(session, name, **kwargs):
for s, _ in session._runner.manifest.list_all_sessions():
if name not in s.signatures:
continue
for signature in s.signatures:
for key, value in kwargs.items():
param = "{}={!r}".format(key, value)
if IS_PY3:
# Under Python2 repr unicode string are always "u" prefixed, ie, u'a string'.
param = param.replace("u'", "'")
if param not in signature:
break
else:
return s
continue
session.error(
"Could not find a nox session by the name {!r} with the following keyword arguments: {!r}".format(
name, kwargs
)
)
def _create_ci_directories():
for dirname in ("logs", "coverage", "xml-unittests-output"):
path = os.path.join("artifacts", dirname)
@ -415,6 +437,9 @@ def _runtests(session, coverage, cmd_args):
@nox.parametrize("transport", ["zeromq", "tcp"])
@nox.parametrize("crypto", [None, "m2crypto", "pycryptodome"])
def runtests_parametrized(session, coverage, transport, crypto):
"""
DO NOT CALL THIS NOX SESSION DIRECTLY
"""
# Install requirements
_install_requirements(session, transport, "unittest-xml-reporting==2.5.2")
@ -451,8 +476,12 @@ def runtests(session, coverage):
runtests.py session with zeromq transport and default crypto
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto=None, transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"runtests-parametrized-{}".format(session.python),
coverage=coverage,
crypto=None,
transport="zeromq",
)
)
@ -464,8 +493,12 @@ def runtests_tcp(session, coverage):
runtests.py session with TCP transport and default crypto
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto=None, transport='tcp')".format(
session.python, coverage
find_session_runner(
session,
"runtests-parametrized-{}".format(session.python),
coverage=coverage,
crypto=None,
transport="tcp",
)
)
@ -477,8 +510,12 @@ def runtests_zeromq(session, coverage):
runtests.py session with zeromq transport and default crypto
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto=None, transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"runtests-parametrized-{}".format(session.python),
coverage=coverage,
crypto=None,
transport="zeromq",
)
)
@ -490,8 +527,12 @@ def runtests_m2crypto(session, coverage):
runtests.py session with zeromq transport and m2crypto
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto='m2crypto', transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"runtests-parametrized-{}".format(session.python),
coverage=coverage,
crypto="m2crypto",
transport="zeromq",
)
)
@ -503,8 +544,12 @@ def runtests_tcp_m2crypto(session, coverage):
runtests.py session with TCP transport and m2crypto
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto='m2crypto', transport='tcp')".format(
session.python, coverage
find_session_runner(
session,
"runtests-parametrized-{}".format(session.python),
coverage=coverage,
crypto="m2crypto",
transport="tco",
)
)
@ -516,8 +561,12 @@ def runtests_zeromq_m2crypto(session, coverage):
runtests.py session with zeromq transport and m2crypto
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto='m2crypto', transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"runtests-parametrized-{}".format(session.python),
coverage=coverage,
crypto="m2crypto",
transport="zeromq",
)
)
@ -529,8 +578,12 @@ def runtests_pycryptodome(session, coverage):
runtests.py session with zeromq transport and pycryptodome
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto='pycryptodome', transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"runtests-parametrized-{}".format(session.python),
coverage=coverage,
crypto="pycryptodome",
transport="zeromq",
)
)
@ -542,8 +595,12 @@ def runtests_tcp_pycryptodome(session, coverage):
runtests.py session with TCP transport and pycryptodome
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto='pycryptodome', transport='tcp')".format(
session.python, coverage
find_session_runner(
session,
"runtests-parametrized-{}".format(session.python),
coverage=coverage,
crypto="pycryptodome",
transport="tcp",
)
)
@ -555,8 +612,12 @@ def runtests_zeromq_pycryptodome(session, coverage):
runtests.py session with zeromq transport and pycryptodome
"""
session.notify(
"runtests-parametrized-{}(coverage={}, crypto='pycryptodome', transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"runtests-parametrized-{}".format(session.python),
coverage=coverage,
crypto="pycryptodome",
transport="zeromq",
)
)
@ -564,6 +625,9 @@ def runtests_zeromq_pycryptodome(session, coverage):
@nox.session(python=_PYTHON_VERSIONS, name="runtests-cloud")
@nox.parametrize("coverage", [False, True])
def runtests_cloud(session, coverage):
"""
runtests.py cloud tests session
"""
# Install requirements
_install_requirements(session, "zeromq", "unittest-xml-reporting==2.2.1")
@ -584,6 +648,9 @@ def runtests_cloud(session, coverage):
@nox.session(python=_PYTHON_VERSIONS, name="runtests-tornado")
@nox.parametrize("coverage", [False, True])
def runtests_tornado(session, coverage):
"""
runtests.py tornado tests session
"""
# Install requirements
_install_requirements(session, "zeromq", "unittest-xml-reporting==2.2.1")
session.install("--progress-bar=off", "tornado==5.0.2", silent=PIP_INSTALL_SILENT)
@ -598,6 +665,9 @@ def runtests_tornado(session, coverage):
@nox.parametrize("transport", ["zeromq", "tcp"])
@nox.parametrize("crypto", [None, "m2crypto", "pycryptodome"])
def pytest_parametrized(session, coverage, transport, crypto):
"""
DO NOT CALL THIS NOX SESSION DIRECTLY
"""
# Install requirements
_install_requirements(session, transport)
@ -640,8 +710,12 @@ def pytest(session, coverage):
pytest session with zeromq transport and default crypto
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto=None, transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"pytest-parametrized-{}".format(session.python),
coverage=coverage,
crypto=None,
transport="zeromq",
)
)
@ -653,8 +727,12 @@ def pytest_tcp(session, coverage):
pytest session with TCP transport and default crypto
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto=None, transport='tcp')".format(
session.python, coverage
find_session_runner(
session,
"pytest-parametrized-{}".format(session.python),
coverage=coverage,
crypto=None,
transport="tcp",
)
)
@ -666,8 +744,12 @@ def pytest_zeromq(session, coverage):
pytest session with zeromq transport and default crypto
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto=None, transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"pytest-parametrized-{}".format(session.python),
coverage=coverage,
crypto=None,
transport="zeromq",
)
)
@ -679,8 +761,12 @@ def pytest_m2crypto(session, coverage):
pytest session with zeromq transport and m2crypto
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto='m2crypto', transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"pytest-parametrized-{}".format(session.python),
coverage=coverage,
crypto="m2crypto",
transport="zeromq",
)
)
@ -692,8 +778,12 @@ def pytest_tcp_m2crypto(session, coverage):
pytest session with TCP transport and m2crypto
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto='m2crypto', transport='tcp')".format(
session.python, coverage
find_session_runner(
session,
"pytest-parametrized-{}".format(session.python),
coverage=coverage,
crypto="m2crypto",
transport="tcp",
)
)
@ -705,8 +795,12 @@ def pytest_zeromq_m2crypto(session, coverage):
pytest session with zeromq transport and m2crypto
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto='m2crypto', transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"pytest-parametrized-{}".format(session.python),
coverage=coverage,
crypto="m2crypto",
transport="zeromq",
)
)
@ -718,8 +812,12 @@ def pytest_pycryptodome(session, coverage):
pytest session with zeromq transport and pycryptodome
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto='pycryptodome', transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"pytest-parametrized-{}".format(session.python),
coverage=coverage,
crypto="pycryptodome",
transport="zeromq",
)
)
@ -731,8 +829,12 @@ def pytest_tcp_pycryptodome(session, coverage):
pytest session with TCP transport and pycryptodome
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto='pycryptodome', transport='tcp')".format(
session.python, coverage
find_session_runner(
session,
"pytest-parametrized-{}".format(session.python),
coverage=coverage,
crypto="pycryptodome",
transport="tcp",
)
)
@ -744,8 +846,12 @@ def pytest_zeromq_pycryptodome(session, coverage):
pytest session with zeromq transport and pycryptodome
"""
session.notify(
"pytest-parametrized-{}(coverage={}, crypto='pycryptodome', transport='zeromq')".format(
session.python, coverage
find_session_runner(
session,
"pytest-parametrized-{}".format(session.python),
coverage=coverage,
crypto="pycryptodome",
transport="zeromq",
)
)
@ -753,6 +859,9 @@ def pytest_zeromq_pycryptodome(session, coverage):
@nox.session(python=_PYTHON_VERSIONS, name="pytest-cloud")
@nox.parametrize("coverage", [False, True])
def pytest_cloud(session, coverage):
"""
pytest cloud tests session
"""
# Install requirements
_install_requirements(session, "zeromq")
requirements_file = os.path.join(
@ -780,6 +889,9 @@ def pytest_cloud(session, coverage):
@nox.session(python=_PYTHON_VERSIONS, name="pytest-tornado")
@nox.parametrize("coverage", [False, True])
def pytest_tornado(session, coverage):
"""
pytest tornado tests session
"""
# Install requirements
_install_requirements(session, "zeromq")
session.install("--progress-bar=off", "tornado==5.0.2", silent=PIP_INSTALL_SILENT)
@ -1012,8 +1124,15 @@ def docs(session, compress, update):
"""
Build Salt's Documentation
"""
session.notify("docs-html(compress={})".format(compress))
session.notify("docs-man(compress={}, update={})".format(compress, update))
session.notify("docs-html-{}(compress={})".format(session.python, compress))
session.notify(
find_session_runner(
session,
"docs-man-{}".format(session.python),
compress=compress,
update=update,
)
)
@nox.session(name="docs-html", python="3")
@ -1089,11 +1208,19 @@ def _invoke(session):
@nox.session(name="invoke", python="3")
def invoke(session):
"""
Run an invoke target
"""
_invoke(session)
@nox.session(name="invoke-pre-commit", python="3")
def invoke_pre_commit(session):
"""
DO NOT CALL THIS NOX SESSION DIRECTLY
This session is called from a pre-commit hook
"""
if "VIRTUAL_ENV" not in os.environ:
session.error(
"This should be running from within a virtualenv and "