From 961e6f6acd7d6b0582eb7fe3f86b6e8699543d20 Mon Sep 17 00:00:00 2001 From: Ethan Paul <24588726+enpaul@users.noreply.github.com> Date: Fri, 23 Oct 2020 01:20:36 -0400 Subject: [PATCH] Add support for installing all dev dependencies to a testenv --- tox_poetry_installer.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tox_poetry_installer.py b/tox_poetry_installer.py index 78293cd..fde8619 100644 --- a/tox_poetry_installer.py +++ b/tox_poetry_installer.py @@ -232,6 +232,23 @@ def _install_env_dependencies( reporter.error(f"{_REPORTER_PREFIX} {err}") raise err + if venv.envconfig.install_dev_deps: + reporter.verbosity1( + f"{_REPORTER_PREFIX} env specifies 'install_env_deps = true', including Poetry dev dependencies" + ) + + dev_dependencies = [ + dep + for dep in poetry.locker.locked_repository(True).packages + if dep not in poetry.locker.locked_repository(False).packages + ] + + reporter.verbosity1( + f"{_REPORTER_PREFIX} identified {len(dev_dependencies)} Poetry dev dependencies" + ) + + dependencies = list(set(dev_dependencies + dependencies)) + reporter.verbosity1( f"{_REPORTER_PREFIX} identified {len(dependencies)} total dependencies from {len(env_deps.locked_deps)} locked env dependencies" ) @@ -306,6 +323,13 @@ def tox_addoption(parser: ToxParser): dependencies should be treated as locked or not. """ + parser.add_testenv_attribute( + name="install_dev_deps", + type="bool", + default=False, + help="Automatically install all Poetry development dependencies to the environment", + ) + parser.add_testenv_attribute( name="require_locked_deps", type="bool",