-
-
Notifications
You must be signed in to change notification settings - Fork 279
/
Copy pathtest_version_command.py
108 lines (91 loc) · 3.23 KB
/
test_version_command.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import platform
import sys
import pytest
from pytest_mock import MockerFixture
from commitizen import commands
from commitizen.__version__ import __version__
from commitizen.config.base_config import BaseConfig
def test_version_for_showing_project_version(config, capsys):
# No version exist
commands.Version(
config,
{"report": False, "project": True, "commitizen": False, "verbose": False},
)()
captured = capsys.readouterr()
assert "No project information in this project." in captured.err
config.settings["version"] = "v0.0.1"
commands.Version(
config,
{"report": False, "project": True, "commitizen": False, "verbose": False},
)()
captured = capsys.readouterr()
assert "v0.0.1" in captured.out
def test_version_for_showing_commitizen_version(config, capsys):
commands.Version(
config,
{"report": False, "project": False, "commitizen": True, "verbose": False},
)()
captured = capsys.readouterr()
assert f"{__version__}" in captured.out
# default showing commitizen version
commands.Version(
config,
{"report": False, "project": False, "commitizen": False, "verbose": False},
)()
captured = capsys.readouterr()
assert f"{__version__}" in captured.out
def test_version_for_showing_both_versions(config, capsys):
commands.Version(
config,
{"report": False, "project": False, "commitizen": False, "verbose": True},
)()
captured = capsys.readouterr()
assert f"Installed Commitizen Version: {__version__}" in captured.out
assert "No project information in this project." in captured.err
config.settings["version"] = "v0.0.1"
commands.Version(
config,
{"report": False, "project": False, "commitizen": False, "verbose": True},
)()
captured = capsys.readouterr()
expected_out = (
f"Installed Commitizen Version: {__version__}\n" f"Project Version: v0.0.1"
)
assert expected_out in captured.out
def test_version_for_showing_commitizen_system_info(config, capsys):
commands.Version(
config,
{"report": True, "project": False, "commitizen": False, "verbose": False},
)()
captured = capsys.readouterr()
assert f"Commitizen Version: {__version__}" in captured.out
assert f"Python Version: {sys.version}" in captured.out
assert f"Operating System: {platform.system()}" in captured.out
@pytest.mark.parametrize("project", (True, False))
@pytest.mark.usefixtures("tmp_git_project")
def test_version_use_version_provider(
mocker: MockerFixture,
config: BaseConfig,
capsys: pytest.CaptureFixture,
project: bool,
):
version = "0.0.0"
mock = mocker.MagicMock(name="provider")
mock.get_version.return_value = version
get_provider = mocker.patch(
"commitizen.commands.version.get_provider", return_value=mock
)
commands.Version(
config,
{
"report": False,
"project": project,
"commitizen": False,
"verbose": not project,
},
)()
captured = capsys.readouterr()
assert version in captured.out
get_provider.assert_called_once()
mock.get_version.assert_called_once()
mock.set_version.assert_not_called()