@@ -102,9 +102,21 @@ def test_tweak_patchlevel(tmp_path: Path) -> None:
102102 assert expected in new_contents
103103
104104
105- def test_tweak_patchlevel_done (tmp_path : Path ) -> None :
105+ @pytest .mark .parametrize (
106+ ["test_tag" , "expected_py_version" ],
107+ [
108+ # 3.14 and earlier keep the bare "+" they were released with.
109+ ("3.14.0b2" , '#define PY_VERSION "3.14.0b2+"' ),
110+ # 3.15+ uses "+dev" for PEP 440 local-version compliance.
111+ ("3.15.0b1" , '#define PY_VERSION "3.15.0b1+dev"' ),
112+ ("3.16.0a1" , '#define PY_VERSION "3.16.0a1+dev"' ),
113+ ],
114+ )
115+ def test_tweak_patchlevel_done (
116+ tmp_path : Path , test_tag : str , expected_py_version : str
117+ ) -> None :
106118 # Arrange
107- tag = release .Tag ("3.14.0b2" )
119+ tag = release .Tag (test_tag )
108120
109121 original_patchlevel_file = Path (__file__ ).parent / "patchlevel.h"
110122 patchlevel_file = tmp_path / "patchlevel.h"
@@ -115,7 +127,7 @@ def test_tweak_patchlevel_done(tmp_path: Path) -> None:
115127
116128 # Assert
117129 new_contents = patchlevel_file .read_text ()
118- assert '#define PY_VERSION "3.14.0b2+dev"' in new_contents
130+ assert expected_py_version in new_contents
119131
120132
121133@pytest .mark .parametrize (
0 commit comments