Skip to content

Commit 80d47d5

Browse files
committed
feat(commands/version): add --verbose to show both versions
1 parent 805fb09 commit 80d47d5

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
@@ -174,20 +174,42 @@ def test_list_cz(config):
174174

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

181181
config.settings["version"] = "v0.0.1"
182-
commands.Version(config, {"project": True, "commitizen": False})()
182+
commands.Version(config, {"project": True, "commitizen": False, "verbose": False})()
183183
captured = capsys.readouterr()
184-
assert "Project Version: v0.0.1" in captured.out
184+
assert "v0.0.1" in captured.out
185185

186186

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

192214

193215
def test_check_no_conventional_commit(config, mocker):

0 commit comments

Comments
 (0)