Skip to content

Commit c7cb18c

Browse files
committed
feat(commands/version): add --verbose to show both versions
1 parent baf648f commit c7cb18c

File tree

3 files changed

+43
-5
lines changed

3 files changed

+43
-5
lines changed

commitizen/cli.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,15 @@
134134
"action": "store_true",
135135
"exclusive_group": "group1",
136136
},
137+
{
138+
"name": ["-v", "--verbose"],
139+
"help": (
140+
"get the version of both the installed commitizen "
141+
"and the current project"
142+
),
143+
"action": "store_true",
144+
"exclusive_group": "group1",
145+
},
137146
],
138147
},
139148
{

commitizen/commands/version.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,18 @@ def __init__(self, config: BaseConfig, *args):
1212

1313
def __call__(self):
1414
if self.parameter.get("project"):
15+
version = self.config.settings["version"]
16+
if version:
17+
out.write(f"{version}")
18+
else:
19+
out.error(f"No project information in this project.")
20+
elif self.parameter.get("verbose"):
21+
out.write(f"Installed Commitizen Version: {__version__}")
1522
version = self.config.settings["version"]
1623
if version:
1724
out.write(f"Project Version: {version}")
1825
else:
1926
out.error(f"No project information in this project.")
2027
else:
2128
# if no argument is given, show installed commitizen version
22-
out.write(f"Installed Commitizen Version: {__version__}")
29+
out.write(f"{__version__}")

tests/test_commands.py

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,20 +173,42 @@ def test_list_cz(config):
173173

174174
def test_version_for_showing_project_version(config, capsys):
175175
# No version exist
176-
commands.Version(config, {"project": True, "commitizen": False})()
176+
commands.Version(config, {"project": True, "commitizen": False, "verbose": False})()
177177
captured = capsys.readouterr()
178178
assert "No project information in this project." in captured.err
179179

180180
config.settings["version"] = "v0.0.1"
181-
commands.Version(config, {"project": True, "commitizen": False})()
181+
commands.Version(config, {"project": True, "commitizen": False, "verbose": False})()
182182
captured = capsys.readouterr()
183-
assert "Project Version: v0.0.1" in captured.out
183+
assert "v0.0.1" in captured.out
184184

185185

186186
def test_version_for_showing_commitizen_version(config, capsys):
187-
commands.Version(config, {"project": False, "commitizen": True})()
187+
commands.Version(config, {"project": False, "commitizen": True, "verbose": False})()
188+
captured = capsys.readouterr()
189+
assert f"{__version__}" in captured.out
190+
191+
# default showing commitizen version
192+
commands.Version(
193+
config, {"project": False, "commitizen": False, "verbose": False}
194+
)()
195+
captured = capsys.readouterr()
196+
assert f"{__version__}" in captured.out
197+
198+
199+
def test_version_for_showing_both_versions(config, capsys):
200+
commands.Version(config, {"project": False, "commitizen": False, "verbose": True})()
188201
captured = capsys.readouterr()
189202
assert f"Installed Commitizen Version: {__version__}" in captured.out
203+
assert "No project information in this project." in captured.err
204+
205+
config.settings["version"] = "v0.0.1"
206+
commands.Version(config, {"project": False, "commitizen": False, "verbose": True})()
207+
captured = capsys.readouterr()
208+
expected_out = (
209+
f"Installed Commitizen Version: {__version__}\n" f"Project Version: v0.0.1"
210+
)
211+
assert expected_out in captured.out
190212

191213

192214
def test_check_no_conventional_commit(config, mocker):

0 commit comments

Comments
 (0)