16
16
17
17
from packaging .version import Version
18
18
19
- import setuptools_scm ._integration .setuptools
20
-
19
+ from setuptools_scm ._integration import setuptools as setuptools_integration
21
20
from setuptools_scm ._requirement_cls import extract_package_name
22
21
23
22
if TYPE_CHECKING :
@@ -645,7 +644,9 @@ def test_unicode_in_setup_cfg(tmp_path: Path) -> None:
645
644
),
646
645
encoding = "utf-8" ,
647
646
)
648
- name = setuptools_scm ._integration .setup_cfg .read_dist_name_from_setup_cfg (cfg )
647
+ from setuptools_scm ._integration .setup_cfg import read_dist_name_from_setup_cfg
648
+
649
+ name = read_dist_name_from_setup_cfg (cfg )
649
650
assert name == "configparser"
650
651
651
652
@@ -657,10 +658,10 @@ def test_setuptools_version_keyword_ensures_regex(
657
658
wd ("git tag 1.0" )
658
659
monkeypatch .chdir (wd .cwd )
659
660
660
- from setuptools_scm ._integration .setuptools import version_keyword
661
-
662
661
dist = create_clean_distribution ("test" )
663
- version_keyword (dist , "use_scm_version" , {"tag_regex" : "(1.0)" })
662
+ setuptools_integration .version_keyword (
663
+ dist , "use_scm_version" , {"tag_regex" : "(1.0)" }
664
+ )
664
665
assert dist .metadata .version == "1.0"
665
666
666
667
@@ -938,43 +939,32 @@ def create_clean_distribution(name: str) -> setuptools.Distribution:
938
939
return dist
939
940
940
941
941
- # Helper functions for testing integration point ordering
942
- def integration_infer_version (dist : setuptools .Distribution ) -> str :
943
- """Helper to call infer_version and return the result."""
944
- from setuptools_scm ._integration .setuptools import infer_version
945
-
946
- infer_version (dist )
947
- return "infer_version"
948
-
949
-
950
- def integration_version_keyword_default (dist : setuptools .Distribution ) -> str :
942
+ def version_keyword_default (dist : setuptools .Distribution ) -> None :
951
943
"""Helper to call version_keyword with default config and return the result."""
952
- from setuptools_scm ._integration .setuptools import version_keyword
953
944
954
- version_keyword (dist , "use_scm_version" , True )
955
- return "version_keyword_default"
945
+ setuptools_integration .version_keyword (dist , "use_scm_version" , True )
956
946
957
947
958
- def integration_version_keyword_calver (dist : setuptools .Distribution ) -> str :
948
+ def version_keyword_calver (dist : setuptools .Distribution ) -> None :
959
949
"""Helper to call version_keyword with calver-by-date scheme and return the result."""
960
- from setuptools_scm ._integration .setuptools import version_keyword
961
950
962
- version_keyword (dist , "use_scm_version" , {"version_scheme" : "calver-by-date" })
963
- return "version_keyword_calver"
951
+ setuptools_integration .version_keyword (
952
+ dist , "use_scm_version" , {"version_scheme" : "calver-by-date" }
953
+ )
964
954
965
955
966
956
# Test cases: (first_func, second_func, expected_final_version)
967
957
# We use a controlled date to make calver deterministic
968
958
TEST_CASES = [
969
959
# Real-world scenarios: infer_version and version_keyword can be called in either order
970
- (integration_infer_version , integration_version_keyword_default , "1.0.1.dev1" ),
960
+ (setuptools_integration . infer_version , version_keyword_default , "1.0.1.dev1" ),
971
961
(
972
- integration_infer_version ,
973
- integration_version_keyword_calver ,
962
+ setuptools_integration . infer_version ,
963
+ version_keyword_calver ,
974
964
"9.2.13.0.dev1" ,
975
965
), # calver should win but doesn't
976
- (integration_version_keyword_default , integration_infer_version , "1.0.1.dev1" ),
977
- (integration_version_keyword_calver , integration_infer_version , "9.2.13.0.dev1" ),
966
+ (version_keyword_default , setuptools_integration . infer_version , "1.0.1.dev1" ),
967
+ (version_keyword_calver , setuptools_integration . infer_version , "9.2.13.0.dev1" ),
978
968
]
979
969
980
970
@@ -1010,31 +1000,24 @@ def test_integration_function_call_order(
1010
1000
wd .commit_testfile ("test2" ) # Add another commit to get distance
1011
1001
monkeypatch .chdir (wd .cwd )
1012
1002
1013
- # Generate unique distribution name based on the test combination
1014
- first_name = first_integration .__name__ .replace ("integration_" , "" )
1015
- second_name = second_integration .__name__ .replace ("integration_" , "" )
1016
- dist_name = f"test-pkg-{ first_name } -then-{ second_name } "
1017
-
1018
1003
# Create a pyproject.toml file
1019
1004
pyproject_content = f"""
1020
1005
[build-system]
1021
1006
requires = ["setuptools", "setuptools_scm"]
1022
1007
build-backend = "setuptools.build_meta"
1023
1008
1024
1009
[project]
1025
- name = "{ dist_name } "
1010
+ name = "test-pkg- { first_integration . __name__ } - { second_integration . __name__ } "
1026
1011
dynamic = ["version"]
1027
1012
1028
1013
[tool.setuptools_scm]
1029
1014
local_scheme = "no-local-version"
1030
1015
"""
1031
1016
wd .write ("pyproject.toml" , pyproject_content )
1032
1017
1033
- import setuptools
1034
-
1035
- # Create distribution and clear any auto-set version
1036
- dist = setuptools .Distribution ({"name" : dist_name })
1037
- dist .metadata .version = None
1018
+ dist = create_clean_distribution (
1019
+ f"test-pkg-{ first_integration .__name__ } -{ second_integration .__name__ } "
1020
+ )
1038
1021
1039
1022
# Call both integration functions in order
1040
1023
first_integration (dist )
0 commit comments