diff --git a/docs/changelog/2442.bugfix.rst b/docs/changelog/2442.bugfix.rst new file mode 100644 index 000000000..e692f4662 --- /dev/null +++ b/docs/changelog/2442.bugfix.rst @@ -0,0 +1 @@ +Reuse package_env with ``--installpkg`` - by :user:`q0w`. diff --git a/src/tox/tox_env/runner.py b/src/tox/tox_env/runner.py index 2031824bc..73f343045 100644 --- a/src/tox/tox_env/runner.py +++ b/src/tox/tox_env/runner.py @@ -87,9 +87,8 @@ def interrupt(self) -> None: self._call_pkg_envs("interrupt") def get_package_env_types(self) -> tuple[str, str] | None: - has_external_pkg = getattr(self.options, "install_pkg", None) is not None - if self._register_package_conf() or has_external_pkg: - has_external_pkg = has_external_pkg or self.conf["package"] == "external" + if self._register_package_conf(): + has_external_pkg = self.conf["package"] == "external" self.core.add_config( keys=["package_env", "isolated_build_env"], of_type=str, diff --git a/tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py b/tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py index f3cc82972..7b534af54 100644 --- a/tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py +++ b/tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py @@ -147,3 +147,14 @@ def test_tox_install_pkg_bad_wheel(tox_project: ToxProjectCreator, tmp_path: Pat result.assert_failed() assert "failed with no .dist-info inside " in result.out, result.out + + +def test_tox_install_pkg_with_skip_install( + tox_project: ToxProjectCreator, + demo_pkg_inline: Path, + demo_pkg_inline_wheel: Path, +) -> None: + ini = "[testenv:foo]\nskip_install = true" + project = tox_project({"tox.ini": ini, "pyproject.toml": (demo_pkg_inline / "pyproject.toml").read_text()}) + result = project.run("-e", "py", "--installpkg", str(demo_pkg_inline_wheel)) + result.assert_success()