diff options
author | Masen Furer <m_github@0x26.net> | 2023-01-28 17:33:42 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-28 17:33:42 -0800 |
commit | 3295838a51cda058326c7ab29b26d89b7e9e70ac (patch) | |
tree | b6fc5326c6873b27575373c98af355ba8090a402 /tests | |
parent | acadf36d08c5732e36e1547ba716d2c094c525e7 (diff) | |
download | tox-git-3295838a51cda058326c7ab29b26d89b7e9e70ac.tar.gz |
Support recursive extras defined in pyproject.toml (#2905)
* test_package_pyproject: recursive extras
Add regression test for issue #2904
* test_package_pyproject: when project deps has a self-referential extra
the project depends on an extra defined within itself
* Support recursive extras defined in pyproject.toml
Expand extras that reference an extra of the same package name to respect local
changes to package metadata.
Fix #2904
Diffstat (limited to 'tests')
-rw-r--r-- | tests/tox_env/python/virtual_env/package/test_package_pyproject.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/tox_env/python/virtual_env/package/test_package_pyproject.py b/tests/tox_env/python/virtual_env/package/test_package_pyproject.py index a8f6c9ed..0d6160a5 100644 --- a/tests/tox_env/python/virtual_env/package/test_package_pyproject.py +++ b/tests/tox_env/python/virtual_env/package/test_package_pyproject.py @@ -1,6 +1,7 @@ from __future__ import annotations from pathlib import Path +from textwrap import dedent import pytest @@ -92,6 +93,57 @@ def test_package_root_via_testenv(tox_project: ToxProjectCreator, demo_pkg_inlin ["A"], id="deps_with_dynamic_optional_no_extra", ), + pytest.param( + dedent( + """ + [project] + name='foo' + dependencies=['foo[alpha]'] + optional-dependencies.alpha=['A']""", + ), + "", + ["A"], + id="deps_reference_extra", + ), + pytest.param( + dedent( + """ + [project] + name='foo' + dependencies=['A'] + optional-dependencies.alpha=['B'] + optional-dependencies.beta=['foo[alpha]']""", + ), + "beta", + ["A", "B"], + id="deps_with_recursive_extra", + ), + pytest.param( + dedent( + """ + [project] + name='foo' + dependencies=['A'] + optional-dependencies.alpha=['B'] + optional-dependencies.beta=['foo[alpha]'] + optional-dependencies.delta=['foo[beta]', 'D']""", + ), + "delta", + ["A", "B", "D"], + id="deps_with_two_recursive_extra", + ), + pytest.param( + dedent( + """ + [project] + name='foo' + optional-dependencies.alpha=['foo[beta]', 'A'] + optional-dependencies.beta=['foo[alpha]', 'B']""", + ), + "alpha", + ["A", "B"], + id="deps_with_circular_recursive_extra", + ), ], ) def test_pyproject_deps_from_static( |