4 Commits
0.3.1 ... 0.4.0

Author SHA1 Message Date
3a262d718c Merge pull request #19 from enpaul/enp/install-dev-deps
Add config option for installing dev dependencies to testenv
2020-10-29 17:28:39 -04:00
5979ec7a8a Add documentation for new config option 2020-10-28 16:26:31 -04:00
c7bb3d35ea Bump feature version 2020-10-24 12:10:07 -04:00
961e6f6acd Add support for installing all dev dependencies to a testenv 2020-10-24 12:09:42 -04:00
3 changed files with 30 additions and 2 deletions

View File

@@ -96,6 +96,10 @@ deps =
commands = ... commands = ...
``` ```
Alternatively, to quickly install all Poetry dev-dependencies to a Tox environment, add the
`install_dev_deps = true` option to the environment configuration. This option can be used either
with the `require_locked_deps = true` option or without it
**Note:** Regardless of the settings outlined above, all dependencies of the project package (the **Note:** Regardless of the settings outlined above, all dependencies of the project package (the
one Tox is testing) will always be installed from the lockfile. one Tox is testing) will always be installed from the lockfile.

View File

@@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "tox-poetry-installer" name = "tox-poetry-installer"
version = "0.3.1" version = "0.4.0"
license = "MIT" license = "MIT"
authors = ["Ethan Paul <24588726+enpaul@users.noreply.github.com>"] authors = ["Ethan Paul <24588726+enpaul@users.noreply.github.com>"]
description = "Tox plugin to install Tox environment dependencies using the Poetry backend and lockfile" description = "Tox plugin to install Tox environment dependencies using the Poetry backend and lockfile"

View File

@@ -45,7 +45,7 @@ from tox.venv import VirtualEnv as ToxVirtualEnv
__title__ = "tox-poetry-installer" __title__ = "tox-poetry-installer"
__summary__ = "Tox plugin to install Tox environment dependencies using the Poetry backend and lockfile" __summary__ = "Tox plugin to install Tox environment dependencies using the Poetry backend and lockfile"
__version__ = "0.3.1" __version__ = "0.4.0"
__url__ = "https://github.com/enpaul/tox-poetry-installer/" __url__ = "https://github.com/enpaul/tox-poetry-installer/"
__license__ = "MIT" __license__ = "MIT"
__authors__ = ["Ethan Paul <24588726+enpaul@users.noreply.github.com>"] __authors__ = ["Ethan Paul <24588726+enpaul@users.noreply.github.com>"]
@@ -232,6 +232,23 @@ def _install_env_dependencies(
reporter.error(f"{_REPORTER_PREFIX} {err}") reporter.error(f"{_REPORTER_PREFIX} {err}")
raise 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( reporter.verbosity1(
f"{_REPORTER_PREFIX} identified {len(dependencies)} total dependencies from {len(env_deps.locked_deps)} locked env dependencies" 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. 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( parser.add_testenv_attribute(
name="require_locked_deps", name="require_locked_deps",
type="bool", type="bool",