1111from tests .utils import skip_below_py_3_10
1212
1313
14- def test_version_for_showing_project_version (config , capsys ):
15- # No version exist
14+ def test_version_for_showing_project_version_error (config , capsys ):
15+ # No version specified in config
1616 commands .Version (
1717 config ,
18- {"report" : False , " project" : True , "commitizen" : False , "verbose" : False },
18+ {"project" : True },
1919 )()
2020 captured = capsys .readouterr ()
2121 assert "No project information in this project." in captured .err
2222
23+
24+ def test_version_for_showing_project_version (config , capsys ):
2325 config .settings ["version" ] = "v0.0.1"
2426 commands .Version (
2527 config ,
26- {"report" : False , " project" : True , "commitizen" : False , "verbose" : False },
28+ {"project" : True },
2729 )()
2830 captured = capsys .readouterr ()
2931 assert "v0.0.1" in captured .out
3032
3133
32- def test_version_for_showing_commitizen_version (config , capsys ):
33- commands .Version (
34- config ,
35- {"report" : False , "project" : False , "commitizen" : True , "verbose" : False },
36- )()
37- captured = capsys .readouterr ()
38- assert f"{ __version__ } " in captured .out
39-
40- # default showing commitizen version
34+ @pytest .mark .parametrize ("project" , (True , False ))
35+ def test_version_for_showing_commitizen_version (config , capsys , project : bool ):
4136 commands .Version (
4237 config ,
43- {"report" : False , " project" : False , "commitizen" : False , "verbose" : False },
38+ {"project" : project , "commitizen" : True },
4439 )()
4540 captured = capsys .readouterr ()
4641 assert f"{ __version__ } " in captured .out
4742
4843
49- def test_version_for_showing_both_versions (config , capsys ):
44+ def test_version_for_showing_both_versions_no_project (config , capsys ):
5045 commands .Version (
5146 config ,
52- {"report" : False , "project" : False , "commitizen" : False , " verbose" : True },
47+ {"verbose" : True },
5348 )()
5449 captured = capsys .readouterr ()
5550 assert f"Installed Commitizen Version: { __version__ } " in captured .out
5651 assert "No project information in this project." in captured .err
5752
53+
54+ def test_version_for_showing_both_versions (config , capsys ):
5855 config .settings ["version" ] = "v0.0.1"
5956 commands .Version (
6057 config ,
61- {"report" : False , "project" : False , "commitizen" : False , " verbose" : True },
58+ {"verbose" : True },
6259 )()
6360 captured = capsys .readouterr ()
6461 expected_out = (
@@ -70,7 +67,7 @@ def test_version_for_showing_both_versions(config, capsys):
7067def test_version_for_showing_commitizen_system_info (config , capsys ):
7168 commands .Version (
7269 config ,
73- {"report" : True , "project" : False , "commitizen" : False , "verbose" : False },
70+ {"report" : True },
7471 )()
7572 captured = capsys .readouterr ()
7673 assert f"Commitizen Version: { __version__ } " in captured .out
@@ -96,7 +93,6 @@ def test_version_use_version_provider(
9693 commands .Version (
9794 config ,
9895 {
99- "report" : False ,
10096 "project" : project ,
10197 "verbose" : not project ,
10298 },
@@ -135,16 +131,20 @@ def test_version_command_shows_description_when_use_help_option(
135131
136132
137133@pytest .mark .parametrize (
138- "version, expected_version" , (("1.0.0" , "1\n " ), ("2.1.3" , "2\n " ), ("0.0.1" , "0\n " ))
134+ "version, expected_version" ,
135+ [
136+ ("1.0.0" , "1\n " ),
137+ ("2.1.3" , "2\n " ),
138+ ("0.0.1" , "0\n " ),
139+ ("0.1.0" , "0\n " ),
140+ ],
139141)
140142def test_version_just_major (config , capsys , version : str , expected_version : str ):
141143 config .settings ["version" ] = version
142144 commands .Version (
143145 config ,
144146 {
145- "report" : False ,
146147 "project" : True ,
147- "verbose" : False ,
148148 "major" : True ,
149149 },
150150 )()
@@ -154,18 +154,37 @@ def test_version_just_major(config, capsys, version: str, expected_version: str)
154154
155155@pytest .mark .parametrize (
156156 "version, expected_version" ,
157- (("1.0.0" , "0\n " ), ("2.1.3" , "1\n " ), ("0.0.1" , "0\n " ), ("0.1.0" , "1\n " )),
157+ [
158+ ("1.0.0" , "0\n " ),
159+ ("2.1.3" , "1\n " ),
160+ ("0.0.1" , "0\n " ),
161+ ("0.1.0" , "1\n " ),
162+ ],
158163)
159164def test_version_just_minor (config , capsys , version : str , expected_version : str ):
160165 config .settings ["version" ] = version
161166 commands .Version (
162167 config ,
163168 {
164- "report" : False ,
165169 "project" : True ,
166- "verbose" : False ,
167170 "minor" : True ,
168171 },
169172 )()
170173 captured = capsys .readouterr ()
171174 assert expected_version == captured .out
175+
176+
177+ @pytest .mark .parametrize ("argument" , ("major" , "minor" ))
178+ def test_version_just_major_error_no_project (config , capsys , argument : str ):
179+ commands .Version (
180+ config ,
181+ {
182+ argument : True , # type: ignore[misc]
183+ },
184+ )()
185+ captured = capsys .readouterr ()
186+ assert not captured .out
187+ assert (
188+ "Major or minor version can only be used with --project or --verbose."
189+ in captured .err
190+ )
0 commit comments