@@ -81,26 +81,70 @@ def test_no_pyproject_toml(self) -> None:
8181 # and not call get_version_inference_config at all.
8282 # This test is no longer needed as pyproject_data is always required.
8383
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 ."""
8686 result = get_version_inference_config (
8787 dist_name = "test_package" ,
8888 current_version = None ,
8989 pyproject_data = PyProjectData .for_testing (False , False , True ),
90+ overrides = None , # infer_version call
9091 )
9192
9293 assert isinstance (result , VersionInferenceNoOp )
9394
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."""
96110 result = get_version_inference_config (
97111 dist_name = "test_package" ,
98112 current_version = None ,
99113 pyproject_data = PyProjectData .for_testing (True , False , False ),
114+ overrides = None , # infer_version call
100115 )
101116
102117 assert isinstance (result , VersionInferenceNoOp )
103118
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+
104148 def test_setuptools_scm_required_with_project_section (self ) -> None :
105149 """Test that we infer when setuptools-scm is required and project section exists."""
106150 result = get_version_inference_config (
0 commit comments