From c8d7009200f0b618bd44713114bdfe1d26c011c7 Mon Sep 17 00:00:00 2001 From: Ethan Paul <24588726+enpaul@users.noreply.github.com> Date: Mon, 19 Apr 2021 23:11:04 -0400 Subject: [PATCH] Update require_poetry option to be config option rather than runtime Add deprecation warning for future removal of runtime require_poetry option --- tox_poetry_installer/hooks.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tox_poetry_installer/hooks.py b/tox_poetry_installer/hooks.py index 1a0489c..7c880ee 100644 --- a/tox_poetry_installer/hooks.py +++ b/tox_poetry_installer/hooks.py @@ -56,6 +56,13 @@ def tox_addoption(parser: ToxParser): help="Require all dependencies in the environment be installed using the Poetry lockfile", ) + parser.add_testenv_attribute( + name="require_poetry", + type="bool", + default=False, + help="Trigger a failure if Poetry is not available to Tox", + ) + parser.add_testenv_attribute( name="locked_deps", type="line-list", @@ -75,12 +82,18 @@ def tox_testenv_install_deps(venv: ToxVirtualEnv, action: ToxAction) -> Optional :param action: Tox action object """ + if venv.envconfig.config.option.require_poetry: + logger.warning( + "DEPRECATION WARNING: The '--require-poetry' runtime option is deprecated and will be " + "removed in version 1.0.0. Please update test environments that require Poetry to " + "set the 'require_poetry = true' option in tox.ini" + ) + try: poetry = utilities.check_preconditions(venv, action) except exceptions.SkipEnvironment as err: - if ( - isinstance(err, exceptions.PoetryNotInstalledError) - and venv.envconfig.config.option.require_poetry + if isinstance(err, exceptions.PoetryNotInstalledError) and ( + venv.envconfig.config.option.require_poetry or venv.envconfig.require_poetry ): venv.status = err.__class__.__name__ logger.error(str(err))