Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 42e4361

Browse files
test(bump): add missing tests for local-version flag
1 parent 3b8b829 commit 42e4361

File tree

4 files changed

+51
-5
lines changed

4 files changed

+51
-5
lines changed

commitizen/bump.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,14 @@ def generate_version(
124124
MINOR 1.0.0 -> 1.1.0
125125
MAJOR 1.0.0 -> 2.0.0
126126
"""
127-
pre_version = prerelease_generator(current_version, prerelease=prerelease)
128-
129127
if is_local_version:
130128
version = Version(current_version)
131-
local_semver = semver_generator(str(version.local), increment=increment)
129+
pre_version = prerelease_generator(str(version.local), prerelease=prerelease)
130+
semver = semver_generator(str(version.local), increment=increment)
132131

133-
return Version(f"{version.public}+{local_semver}{pre_version}")
132+
return Version(f"{version.public}+{semver}{pre_version}")
134133
else:
134+
pre_version = prerelease_generator(current_version, prerelease=prerelease)
135135
semver = semver_generator(current_version, increment=increment)
136136

137137
# TODO: post version
@@ -199,7 +199,7 @@ def create_tag(version: Union[Version, str], tag_format: Optional[str] = None):
199199
version = Version(version)
200200

201201
if not tag_format:
202-
return version.public
202+
return str(version)
203203

204204
major, minor, patch = version.release
205205
prerelease = ""

tests/commands/test_bump_command.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,27 @@ def test_bump_files_only(mocker, tmp_commitizen_project):
243243
assert "0.3.0" in f.read()
244244

245245

246+
def test_bump_local_version(mocker, tmp_commitizen_project):
247+
tmp_version_file = tmp_commitizen_project.join("__version__.py")
248+
tmp_version_file.write("4.5.1+0.1.0")
249+
tmp_commitizen_cfg_file = tmp_commitizen_project.join("pyproject.toml")
250+
tmp_commitizen_cfg_file.write(
251+
f"[tool.commitizen]\n"
252+
'version="4.5.1+0.1.0"\n'
253+
f'version_files = ["{str(tmp_version_file)}"]'
254+
)
255+
256+
create_file_and_commit("feat: new user interface")
257+
testargs = ["cz", "bump", "--yes", "--local-version"]
258+
mocker.patch.object(sys, "argv", testargs)
259+
cli.main()
260+
tag_exists = git.tag_exist("4.5.1+0.2.0")
261+
assert tag_exists is True
262+
263+
with open(tmp_version_file, "r") as f:
264+
assert "4.5.1+0.2.0" in f.read()
265+
266+
246267
def test_bump_dry_run(mocker, capsys, tmp_commitizen_project):
247268
create_file_and_commit("feat: new file")
248269

tests/test_bump_create_tag.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
(("1.2.3", "ver$major.$minor.$patch"), "ver1.2.3"),
1111
(("1.2.3a0", "ver$major.$minor.$patch.$prerelease"), "ver1.2.3.a0"),
1212
(("1.2.3rc2", "$major.$minor.$patch.$prerelease-majestic"), "1.2.3.rc2-majestic"),
13+
(("1.2.3+1.0.0", "v$version"), "v1.2.3+1.0.0"),
14+
(("1.2.3+1.0.0", "v$version-local"), "v1.2.3+1.0.0-local"),
15+
(("1.2.3+1.0.0", "ver$major.$minor.$patch"), "ver1.2.3"),
1316
]
1417

1518

tests/test_bump_find_version.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@
3030
(("1.2.1", "MAJOR", None), "2.0.0"),
3131
]
3232

33+
local_versions = [
34+
(("4.5.0+0.1.0", "PATCH", None), "4.5.0+0.1.1"),
35+
(("4.5.0+0.1.1", "MINOR", None), "4.5.0+0.2.0"),
36+
(("4.5.0+0.2.0", "MAJOR", None), "4.5.0+1.0.0"),
37+
]
38+
3339
# this cases should be handled gracefully
3440
unexpected_cases = [
3541
(("0.1.1rc0", None, "alpha"), "0.1.1a0"),
@@ -73,3 +79,19 @@ def test_generate_version(test_input, expected):
7379
assert generate_version(
7480
current_version, increment=increment, prerelease=prerelease
7581
) == Version(expected)
82+
83+
84+
@pytest.mark.parametrize(
85+
"test_input,expected", itertools.chain(local_versions),
86+
)
87+
def test_generate_version_local(test_input, expected):
88+
current_version = test_input[0]
89+
increment = test_input[1]
90+
prerelease = test_input[2]
91+
is_local_version = True
92+
assert generate_version(
93+
current_version,
94+
increment=increment,
95+
prerelease=prerelease,
96+
is_local_version=is_local_version,
97+
) == Version(expected)

0 commit comments

Comments
 (0)