mirror of
https://github.com/fedora-python/tox-current-env.git
synced 2024-12-24 00:56:16 +01:00
Print tox requires with --print-deps-to
Partially fixes https://github.com/fedora-python/tox-current-env/issues/39
This commit is contained in:
parent
a66b6f73d3
commit
e7456d9645
@ -198,10 +198,11 @@ def tox_testenv_install_deps(venv, action):
|
||||
|
||||
|
||||
def tox_dependencies(config):
|
||||
"""Get dependencies of tox itself, 'minversion' config option"""
|
||||
deps = []
|
||||
"""Get dependencies of tox itself, 'minversion' and 'requires' config options"""
|
||||
# config does not have this attribute until tox 3.22:
|
||||
deps = getattr(config, "requires", [])
|
||||
if config.minversion is not None:
|
||||
deps.append(f"tox >= {config.minversion}")
|
||||
deps.insert(0, f"tox >= {config.minversion}")
|
||||
return deps
|
||||
|
||||
|
||||
|
@ -10,6 +10,8 @@ import warnings
|
||||
import configparser
|
||||
import contextlib
|
||||
|
||||
from packaging.version import parse as ver
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@ -86,6 +88,9 @@ def tox(*args, quiet=True, **kwargs):
|
||||
return cp
|
||||
|
||||
|
||||
TOX_VERSION = ver(tox("--version").stdout.split(" ")[0])
|
||||
|
||||
|
||||
@functools.lru_cache(maxsize=8)
|
||||
def is_available(python):
|
||||
try:
|
||||
@ -168,6 +173,48 @@ def test_print_deps_with_tox_minversion(projdir, toxenv, print_deps_stdout_arg):
|
||||
assert result.stdout == expected
|
||||
|
||||
|
||||
@pytest.mark.xfail(TOX_VERSION < ver("3.22"), reason="No support in old tox")
|
||||
@pytest.mark.parametrize("toxenv", ["py36", "py37", "py38", "py39"])
|
||||
def test_print_deps_with_tox_requires(projdir, toxenv, print_deps_stdout_arg):
|
||||
with modify_config(projdir / 'tox.ini') as config:
|
||||
config["tox"]["requires"] = "\n setuptools > 30\n pluggy"
|
||||
result = tox("-e", toxenv, print_deps_stdout_arg)
|
||||
expected = textwrap.dedent(
|
||||
f"""
|
||||
setuptools > 30
|
||||
pluggy
|
||||
six
|
||||
py
|
||||
___________________________________ summary ____________________________________
|
||||
{toxenv}: commands succeeded
|
||||
congratulations :)
|
||||
"""
|
||||
).lstrip()
|
||||
assert result.stdout == expected
|
||||
|
||||
|
||||
@pytest.mark.xfail(TOX_VERSION < ver("3.22"), reason="No support in old tox")
|
||||
@pytest.mark.parametrize("toxenv", ["py36", "py37", "py38", "py39"])
|
||||
def test_print_deps_with_tox_minversion_and_requires(projdir, toxenv, print_deps_stdout_arg):
|
||||
with modify_config(projdir / 'tox.ini') as config:
|
||||
config["tox"]["minversion"] = "3.13"
|
||||
config["tox"]["requires"] = "\n setuptools > 30\n pluggy"
|
||||
result = tox("-e", toxenv, print_deps_stdout_arg)
|
||||
expected = textwrap.dedent(
|
||||
f"""
|
||||
tox >= 3.13
|
||||
setuptools > 30
|
||||
pluggy
|
||||
six
|
||||
py
|
||||
___________________________________ summary ____________________________________
|
||||
{toxenv}: commands succeeded
|
||||
congratulations :)
|
||||
"""
|
||||
).lstrip()
|
||||
assert result.stdout == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize("toxenv", ["py36", "py37", "py38", "py39"])
|
||||
def test_print_extras(toxenv, print_extras_stdout_arg):
|
||||
result = tox("-e", toxenv, print_extras_stdout_arg)
|
||||
|
Loading…
Reference in New Issue
Block a user