tox.hookspecs 源代码

"""Hook specifications for tox - see https://pluggy.readthedocs.io/"""
import pluggy

hookspec = pluggy.HookspecMarker("tox")


[文档]@hookspec def tox_addoption(parser): """add command line options to the argparse-style parser object."""
[文档]@hookspec def tox_configure(config): """Called after command line options are parsed and ini-file has been read. Please be aware that the config object layout may change between major tox versions. """
[文档]@hookspec(firstresult=True) def tox_package(session, venv): """Return the package to be installed for the given venv. Called once for every environment."""
[文档]@hookspec(firstresult=True) def tox_get_python_executable(envconfig): """Return a python executable for the given python base name. The first plugin/hook which returns an executable path will determine it. ``envconfig`` is the testenv configuration which contains per-testenv configuration, notably the ``.envname`` and ``.basepython`` setting. """
[文档]@hookspec(firstresult=True) def tox_testenv_create(venv, action): """Perform creation action for this venv. Some example usage: - To *add* behavior but still use tox's implementation to set up a virtualenv, implement this hook but do not return a value (or explicitly return ``None``). - To *override* tox's virtualenv creation, implement this hook and return a non-``None`` value. .. note:: This api is experimental due to the unstable api of :class:`tox.venv.VirtualEnv`. .. note:: This hook uses ``firstresult=True`` (see `pluggy first result only`_) -- hooks implementing this will be run until one returns non-``None``. .. _`pluggy first result only`: https://pluggy.readthedocs.io/en/latest/#first-result-only """
[文档]@hookspec(firstresult=True) def tox_testenv_install_deps(venv, action): """Perform install dependencies action for this venv. Some example usage: - To *add* behavior but still use tox's implementation to install dependencies, implement this hook but do not return a value (or explicitly return ``None``). One use-case may be to install (or ensure) non-python dependencies such as debian packages. - To *override* tox's installation of dependencies, implement this hook and return a non-``None`` value. One use-case may be to install via a different installation tool such as `pip-accel`_ or `pip-faster`_. .. note:: This api is experimental due to the unstable api of :class:`tox.venv.VirtualEnv`. .. note:: This hook uses ``firstresult=True`` (see `pluggy first result only`_) -- hooks implementing this will be run until one returns non-``None``. .. _pip-accel: https://github.com/paylogic/pip-accel .. _pip-faster: https://github.com/Yelp/venv-update """
[文档]@hookspec def tox_runtest_pre(venv): """Perform arbitrary action before running tests for this venv. This could be used to indicate that tests for a given venv have started, for instance. """
[文档]@hookspec(firstresult=True) def tox_runtest(venv, redirect): """Run the tests for this venv. .. note:: This hook uses ``firstresult=True`` (see `pluggy first result only`_) -- hooks implementing this will be run until one returns non-``None``. """
[文档]@hookspec def tox_runtest_post(venv): """Perform arbitrary action after running tests for this venv. This could be used to have per-venv test reporting of pass/fail status. """
[文档]@hookspec(firstresult=True) def tox_runenvreport(venv, action): """Get the installed packages and versions in this venv. This could be used for alternative (ie non-pip) package managers, this plugin should return a ``list`` of type ``str`` """
[文档]@hookspec def tox_cleanup(session): """Called just before the session is destroyed, allowing any final cleanup operation"""