Skip to content

Commit 8336c5d

Browse files
committed
Rework handling of fixup testenvs in tox.ini
1 parent a29074d commit 8336c5d

23 files changed

+31
-40
lines changed

repo_helper/configuration/python_versions_.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ class python_versions(ConfigVar):
126126
rtype = Dict[str, Dict[str, Any]]
127127
default = _default_python_versions
128128
category: str = "python versions"
129+
_de_dev_map = {
130+
"3.13-dev": "3.13",
131+
"3.12-dev": "3.12",
132+
}
129133

130134
@staticmethod
131135
def _is_experimental(version: str) -> bool:
@@ -152,6 +156,7 @@ def validator(cls, value: Mapping[str, Any]) -> Dict[str, Dict[str, Any]]: # no
152156
from repo_helper.configuration.packaging import platforms
153157

154158
for version, metadata in natsorted((str(k), v) for k, v in value.items() if k):
159+
version = cls._de_dev_map.get(version, version)
155160
metadata.setdefault("experimental", cls._is_experimental(version))
156161
metadata.setdefault("platforms", platforms.default)
157162
metadata.setdefault("matrix_exclude", {})

repo_helper/files/testing.py

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -400,24 +400,27 @@ def testenv_py313(self) -> None: # noqa: D102
400400
def testenv_py313_dev(self) -> None: # noqa: D102
401401
pass
402402

403-
def testenv_py312_dev(self) -> None:
404-
"""
405-
``[testenv:py312-dev]``.
406-
"""
407-
403+
def _get_third_party_envs_list(self) -> List[str]:
408404
third_party_envs = []
409405

410406
for third_party_library in self["third_party_version_matrix"]:
411407
third_party_versions = self["third_party_version_matrix"][third_party_library]
412408
third_party_envs.append(f"{third_party_library}{{{','.join(third_party_versions)}}}")
413-
# third_party_envs.append(f"testenv:py312-dev-{third_party_library}{{{','.join(third_party_versions)}}}")
414-
# third_party_envs.append(f"testenv:py312-{third_party_library}{{{','.join(third_party_versions)}}}")
409+
410+
return third_party_envs
411+
412+
def testenv_py312_dev(self) -> None:
413+
"""
414+
``[testenv:py312-dev]``.
415+
"""
416+
417+
third_party_envs = self._get_third_party_envs_list()
415418

416419
for fixup_version in ["3.12-dev", "3.12", "3.13", "3.13-dev"]:
417-
if fixup_version in self["python_versions"]:
420+
if fixup_version in self["python_versions"] and "fixups" not in self["tox_unmanaged"]:
418421
setenv = self.get_setenv(False, False)
419-
if fixup_version.startswith("3.13"):
420-
setenv.append("UNSAFE_PYO3_SKIP_VERSION_CHECK=1")
422+
# if fixup_version.startswith("3.13"):
423+
# setenv.append("UNSAFE_PYO3_SKIP_VERSION_CHECK=1")
421424

422425
env_name = f"testenv:py{fixup_version.replace('.', '')}"
423426
if env_name in self._ini:
@@ -433,7 +436,8 @@ def testenv_py312_dev(self) -> None:
433436
else:
434437
self._ini.remove_section(f"testenv:py{fixup_version.replace('.', '')}")
435438
for env in third_party_envs:
436-
self._ini.remove_section(env)
439+
env_name = f"testenv:py{fixup_version.replace('.', '')}-{env}"
440+
self._ini.remove_section(env_name)
437441

438442
def testenv__package(self) -> None:
439443
"""
@@ -746,6 +750,12 @@ def merge_existing(self, ini_file: pathlib.Path) -> None:
746750
existing_config = ConfigUpdater()
747751
existing_config.read(str(ini_file))
748752

753+
if "fixups" in self["tox_unmanaged"]:
754+
for env in self._get_third_party_envs_list():
755+
for fixup_version in ["3.12-dev", "3.12", "3.13", "3.13-dev"]:
756+
env_name = f"testenv:py{fixup_version.replace('.', '')}-{env}"
757+
existing_config.remove_section(env_name)
758+
749759
for section in existing_config.sections_blocks():
750760
if section.name.startswith("testenv:py312-") and section.name in self._ini.sections():
751761
continue

tests/test_configuration_/test_parse_yaml.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ python_versions:
102102
- Windows
103103
- macOS
104104
- Linux
105-
3.12-dev:
106-
experimental: true
105+
'3.12':
106+
experimental: false
107107
matrix_exclude: {}
108108
platforms:
109109
- Windows

tests/test_files/test_testing_/test_make_tox_matrix.ini

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ setenv = PIP_DISABLE_PIP_VERSION_CHECK=1
6565

6666
[testenv:py313-dev]
6767
download = True
68-
setenv =
69-
PIP_DISABLE_PIP_VERSION_CHECK=1
70-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
68+
setenv = PIP_DISABLE_PIP_VERSION_CHECK=1
7169

7270
[testenv:build]
7371
setenv =
@@ -210,6 +208,4 @@ timeout = 300
210208
211209
[testenv:py313-dev-attrs{19.3,20.1,20.2,latest}]
212210
download = True
213-
setenv =
214-
PIP_DISABLE_PIP_VERSION_CHECK=1
215-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
211+
setenv = PIP_DISABLE_PIP_VERSION_CHECK=1

tests/test_files/test_testing_/test_tox_enable_devmode_devmode_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_enable_devmode_no_devmode_.ini

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ setenv = PIP_DISABLE_PIP_VERSION_CHECK=1
5050

5151
[testenv:py313-dev]
5252
download = True
53-
setenv =
54-
PIP_DISABLE_PIP_VERSION_CHECK=1
55-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
53+
setenv = PIP_DISABLE_PIP_VERSION_CHECK=1
5654

5755
[testenv:docs]
5856
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_enable_docs_docs_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_enable_docs_no_docs_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:build]
6261
setenv =

tests/test_files/test_testing_/test_tox_enable_tests_no_tests_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ download = True
5252
setenv =
5353
PYTHONDEVMODE=1
5454
PIP_DISABLE_PIP_VERSION_CHECK=1
55-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
5655

5756
[testenv:docs]
5857
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_enable_tests_tests_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_mypy_deps_mypy_deps0_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_mypy_deps_mypy_deps1_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_mypy_version_0_782_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_mypy_version_0_790_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_py_modules_py_modules0_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_py_modules_py_modules1_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_python_deploy_version_3_6_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_python_deploy_version_3_7_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_python_deploy_version_3_8_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_stubs_package_no_stubs_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_stubs_package_stubs_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_tox_testenv_extras__.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ download = True
5656
setenv =
5757
PYTHONDEVMODE=1
5858
PIP_DISABLE_PIP_VERSION_CHECK=1
59-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6059

6160
[testenv:docs]
6261
setenv = SHOW_TODOS = 1

tests/test_files/test_testing_/test_tox_tox_testenv_extras_extra_a_.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ download = True
5757
setenv =
5858
PYTHONDEVMODE=1
5959
PIP_DISABLE_PIP_VERSION_CHECK=1
60-
UNSAFE_PYO3_SKIP_VERSION_CHECK=1
6160

6261
[testenv:docs]
6362
setenv = SHOW_TODOS = 1

0 commit comments

Comments
 (0)