Skip to content

Commit

Permalink
PR Feedback
Browse files Browse the repository at this point in the history
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
  • Loading branch information
gaborbernat committed May 25, 2023
1 parent f18b543 commit 00dacd5
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 41 deletions.
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ repos:
- id: add-trailing-comma
args: [--py36-plus]
- repo: https://github.com/asottile/pyupgrade
rev: v3.3.1
rev: v3.4.0
hooks:
- id: pyupgrade
args: ["--py37-plus"]
Expand Down Expand Up @@ -52,7 +52,7 @@ repos:
hooks:
- id: flake8
additional_dependencies:
- flake8-bugbear==23.3.23
- flake8-bugbear==23.5.9
- flake8-comprehensions==3.12
- flake8-pytest-style==1.7.2
- flake8-spellcheck==0.28
Expand All @@ -69,7 +69,7 @@ repos:
- "@prettier/plugin-xml@2.2"
args: ["--print-width=120", "--prose-wrap=always"]
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.33.0
rev: v0.34.0
hooks:
- id: markdownlint
- repo: local
Expand Down
26 changes: 13 additions & 13 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
build-backend = "hatchling.build"
requires = [
"hatch-vcs>=0.3",
"hatchling>=1.14",
"hatchling>=1.17",
]

[project]
Expand Down Expand Up @@ -51,23 +51,23 @@ dependencies = [
"cachetools>=5.3",
"chardet>=5.1",
"colorama>=0.4.6",
"filelock>=3.11",
'importlib-metadata>=6.4.1; python_version < "3.8"',
"filelock>=3.12",
'importlib-metadata>=6.6; python_version < "3.8"',
"packaging>=23.1",
"platformdirs>=3.2",
"platformdirs>=3.5.1",
"pluggy>=1",
"pyproject-api>=1.5.1",
'tomli>=2.0.1; python_version < "3.11"',
'typing-extensions>=4.5; python_version < "3.8"',
"virtualenv>=20.21",
'typing-extensions>=4.6.2; python_version < "3.8"',
"virtualenv>=20.23",
]
optional-dependencies.docs = [
"furo>=2023.3.27",
"sphinx>=6.1.3",
"furo>=2023.5.20",
"sphinx>=7.0.1",
"sphinx-argparse-cli>=1.11",
"sphinx-autodoc-typehints!=1.23.4,>=1.23",
"sphinx-copybutton>=0.5.2",
"sphinx-inline-tabs>=2022.1.2b11",
"sphinx-inline-tabs>=2023.4.21",
"sphinxcontrib-towncrier>=0.2.1a0",
"towncrier>=22.12",
]
Expand All @@ -79,12 +79,12 @@ optional-dependencies.testing = [
"distlib>=0.3.6",
"flaky>=3.7",
"hatch-vcs>=0.3",
"hatchling>=1.14",
"psutil>=5.9.4",
"hatchling>=1.17",
"psutil>=5.9.5",
"pytest>=7.3.1",
"pytest-cov>=4",
"pytest-cov>=4.1",
"pytest-mock>=3.10",
"pytest-xdist>=3.2.1",
"pytest-xdist>=3.3.1",
"re-assert>=1.1",
'time-machine>=2.9; implementation_name != "pypy"',
"wheel>=0.40",
Expand Down
3 changes: 2 additions & 1 deletion src/tox/session/cmd/legacy.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,9 @@ def legacy(state: State) -> int:
if option.list_envs or option.list_envs_all:
return list_env(state)
if option.devenv_path:
if option.env.is_default_list:
option.env = CliEnv(["py"])
option.devenv_path = Path(option.devenv_path)
option.env = option.env or CliEnv("py")
return devenv(state)
if option.parallel != 0: # only 0 means sequential
return run_parallel(state)
Expand Down
5 changes: 1 addition & 4 deletions src/tox/session/env_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ def __init__(self, state: State) -> None:
self.on_empty_fallback_py = True
self._warned_about: set[str] = set() #: shared set of skipped environments that were already warned about
self._state = state
self._cli_envs: CliEnv | None = getattr(self._state.conf.options, "env", None)
self._defined_envs_: None | dict[str, _ToxEnvInfo] = None
self._pkg_env_counter: Counter[str] = Counter()
from tox.plugin.manager import MANAGER
Expand All @@ -138,10 +139,6 @@ def __init__(self, state: State) -> None:
tox_env_filter_regex = getattr(state.conf.options, "skip_env", "").strip()
self._filter_re = re.compile(tox_env_filter_regex) if tox_env_filter_regex else None

@property
def _cli_envs(self) -> CliEnv | None:
return getattr(self._state.conf.options, "env", None)

def _collect_names(self) -> Iterator[tuple[Iterable[str], bool]]:
""":return: sources of tox environments defined with name and if is marked as target to run"""
if self._provision is not None: # pragma: no branch
Expand Down
16 changes: 10 additions & 6 deletions tests/session/cmd/test_legacy.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,23 +78,27 @@ def test_legacy_list_all(tox_project: ToxProjectCreator, mocker: MockerFixture,
assert outcome.state.conf.options.show_core is False


@pytest.mark.parametrize("args", [(), ("-e", "py")])
@pytest.mark.parametrize(
"args",
[
pytest.param((), id="empty"),
pytest.param(("-e", "py"), id="select"),
],
)
def test_legacy_devenv(
tox_project: ToxProjectCreator,
mocker: MockerFixture,
tmp_path: Path,
args: tuple[str, ...],
) -> None:
devenv = mocker.patch("tox.session.cmd.legacy.devenv")
run_sequential = mocker.patch("tox.session.cmd.devenv.run_sequential")
into = tmp_path / "b"

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 run_sequential.call_count == 1
assert outcome.state.conf.options.devenv_path == into
assert set(outcome.state.conf.options.env) == {"py"}


def test_legacy_run_parallel(tox_project: ToxProjectCreator, mocker: MockerFixture) -> None:
Expand Down
11 changes: 0 additions & 11 deletions tests/session/test_env_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

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:
Expand Down Expand Up @@ -120,11 +117,3 @@ 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"}
6 changes: 3 additions & 3 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ commands =
description = format the code base to adhere to our styles, and complain about what we cannot do automatically
skip_install = true
deps =
pre-commit>=3.2.2
pre-commit>=3.3.2
pass_env =
{[testenv]passenv}
PROGRAMDATA
Expand All @@ -52,9 +52,9 @@ commands =
[testenv:type]
description = run type check on code base
deps =
mypy==1.2
mypy==1.3
types-cachetools>=5.3.0.5
types-chardet>=5.0.4.3
types-chardet>=5.0.4.6
commands =
mypy src/tox
mypy tests
Expand Down

0 comments on commit 00dacd5

Please sign in to comment.