@@ -81,26 +81,70 @@ def test_no_pyproject_toml(self) -> None:
81
81
# and not call get_version_inference_config at all.
82
82
# This test is no longer needed as pyproject_data is always required.
83
83
84
- def test_no_setuptools_scm_config (self ) -> None :
85
- """Test that we don't infer when setuptools-scm is not configured."""
84
+ def test_no_setuptools_scm_config_infer_version (self ) -> None :
85
+ """Test that we don't infer when setuptools-scm is not configured and infer_version called ."""
86
86
result = get_version_inference_config (
87
87
dist_name = "test_package" ,
88
88
current_version = None ,
89
89
pyproject_data = PyProjectData .for_testing (False , False , True ),
90
+ overrides = None , # infer_version call
90
91
)
91
92
92
93
assert isinstance (result , VersionInferenceNoOp )
93
94
94
- def test_setuptools_scm_required_no_project_section (self ) -> None :
95
- """Test that we don't infer when setuptools-scm is required but no project section."""
95
+ def test_no_setuptools_scm_config_version_keyword (self ) -> None :
96
+ """Test that we DO infer when setuptools-scm is not configured but use_scm_version=True."""
97
+ result = get_version_inference_config (
98
+ dist_name = "test_package" ,
99
+ current_version = None ,
100
+ pyproject_data = PyProjectData .for_testing (False , False , True ),
101
+ overrides = {}, # version_keyword call with use_scm_version=True
102
+ )
103
+
104
+ assert isinstance (result , VersionInferenceConfig )
105
+ assert result .dist_name == "test_package"
106
+ assert result .overrides == {}
107
+
108
+ def test_setuptools_scm_required_no_project_section_infer_version (self ) -> None :
109
+ """Test that we don't infer when setuptools-scm is required but no project section and infer_version called."""
96
110
result = get_version_inference_config (
97
111
dist_name = "test_package" ,
98
112
current_version = None ,
99
113
pyproject_data = PyProjectData .for_testing (True , False , False ),
114
+ overrides = None , # infer_version call
100
115
)
101
116
102
117
assert isinstance (result , VersionInferenceNoOp )
103
118
119
+ def test_setuptools_scm_required_no_project_section_version_keyword (self ) -> None :
120
+ """Test that we DO infer when setuptools-scm is required but no project section and use_scm_version=True."""
121
+ result = get_version_inference_config (
122
+ dist_name = "test_package" ,
123
+ current_version = None ,
124
+ pyproject_data = PyProjectData .for_testing (True , False , False ),
125
+ overrides = {}, # version_keyword call with use_scm_version=True
126
+ )
127
+
128
+ assert isinstance (result , VersionInferenceConfig )
129
+ assert result .dist_name == "test_package"
130
+ assert result .overrides == {}
131
+
132
+ def test_setuptools_scm_required_no_project_section_version_keyword_with_config (
133
+ self ,
134
+ ) -> None :
135
+ """Test that we DO infer when setuptools-scm is required but no project section and use_scm_version={config}."""
136
+ overrides = {"version_scheme" : "calver" }
137
+ result = get_version_inference_config (
138
+ dist_name = "test_package" ,
139
+ current_version = None ,
140
+ pyproject_data = PyProjectData .for_testing (True , False , False ),
141
+ overrides = overrides , # version_keyword call with use_scm_version={config}
142
+ )
143
+
144
+ assert isinstance (result , VersionInferenceConfig )
145
+ assert result .dist_name == "test_package"
146
+ assert result .overrides == overrides
147
+
104
148
def test_setuptools_scm_required_with_project_section (self ) -> None :
105
149
"""Test that we infer when setuptools-scm is required and project section exists."""
106
150
result = get_version_inference_config (
0 commit comments