summaryrefslogtreecommitdiff
path: root/tests/session
diff options
context:
space:
mode:
Diffstat (limited to 'tests/session')
-rw-r--r--tests/session/cmd/test_legacy.py13
-rw-r--r--tests/session/test_env_select.py11
2 files changed, 22 insertions, 2 deletions
diff --git a/tests/session/cmd/test_legacy.py b/tests/session/cmd/test_legacy.py
index 957149b6..1aa7e473 100644
--- a/tests/session/cmd/test_legacy.py
+++ b/tests/session/cmd/test_legacy.py
@@ -78,13 +78,22 @@ def test_legacy_list_all(tox_project: ToxProjectCreator, mocker: MockerFixture,
assert outcome.state.conf.options.show_core is False
-def test_legacy_devenv(tox_project: ToxProjectCreator, mocker: MockerFixture, tmp_path: Path) -> None:
+@pytest.mark.parametrize("args", [(), ("-e", "py")])
+def test_legacy_devenv(
+ tox_project: ToxProjectCreator,
+ mocker: MockerFixture,
+ tmp_path: Path,
+ args: tuple[str, ...],
+) -> None:
devenv = mocker.patch("tox.session.cmd.legacy.devenv")
into = tmp_path / "b"
- outcome = tox_project({"tox.ini": ""}).run("le", "--devenv", str(into), "-e", "py")
+ outcome = tox_project({"tox.ini": ""}).run("le", "--devenv", str(into), *args)
+
+ outcome.state.envs.ensure_only_run_env_is_active()
assert devenv.call_count == 1
+ assert set(outcome.state.conf.options.env) == {"py"}
assert outcome.state.conf.options.devenv_path == into
diff --git a/tests/session/test_env_select.py b/tests/session/test_env_select.py
index 496107a3..e8378fc7 100644
--- a/tests/session/test_env_select.py
+++ b/tests/session/test_env_select.py
@@ -2,7 +2,10 @@ from __future__ import annotations
import pytest
+from tox.config.cli.parse import get_options
from tox.pytest import MonkeyPatch, ToxProjectCreator
+from tox.session.env_select import CliEnv, EnvSelector
+from tox.session.state import State
def test_label_core_can_define(tox_project: ToxProjectCreator) -> None:
@@ -117,3 +120,11 @@ def test_tox_skip_env_logs(tox_project: ToxProjectCreator, monkeypatch: MonkeyPa
outcome = project.run("l", "--no-desc")
outcome.assert_success()
outcome.assert_out_err("ROOT: skip environment mypy, matches filter 'm[y]py'\npy310\npy39\n", "")
+
+
+def test_env_select_lazily_looks_at_envs() -> None:
+ state = State(get_options(), [])
+ env_selector = EnvSelector(state)
+ # late-assigning env should be reflected in env_selector
+ state.conf.options.env = CliEnv("py")
+ assert set(env_selector.iter()) == {"py"}