Skip to content

Commit 6ad0bf1

Browse files
committed
feat(tags): enable version schemes with less than 3 components
1 parent c0da2e6 commit 6ad0bf1

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

‎commitizen/tags.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def normalize_tag(
228228
version=self.scheme(version) ifisinstance(version, str) elseversion
229229
tag_format=tag_formatorself.tag_format
230230

231-
major, minor, patch=version.release
231+
major, minor, patch=(list(version.release) + [0, 0, 0])[:3]
232232
prerelease=version.prereleaseor""
233233

234234
t=Template(tag_format)

‎tests/commands/test_bump_command.py‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -937,6 +937,8 @@ def test_bump_invalid_manual_version_raises_exception(mocker, manual_version):
937937
"0.1.1",
938938
"0.2.0",
939939
"1.0.0",
940+
"1.2",
941+
"1",
940942
],
941943
)
942944
deftest_bump_manual_version(mocker, manual_version):
@@ -966,6 +968,37 @@ def test_bump_manual_version_disallows_major_version_zero(mocker):
966968
assertexpected_error_messageinstr(excinfo.value)
967969

968970

971+
@pytest.mark.parametrize(
972+
"initial_version, expected_version_after_bump",
973+
[
974+
("1", "1.1.0"),
975+
("1.2", "1.3.0"),
976+
],
977+
)
978+
deftest_bump_version_with_less_components_in_config(
979+
tmp_commitizen_project_initial,
980+
mocker: MockFixture,
981+
initial_version,
982+
expected_version_after_bump,
983+
):
984+
tmp_commitizen_project=tmp_commitizen_project_initial(version=initial_version)
985+
986+
testargs= ["cz", "bump", "--yes"]
987+
mocker.patch.object(sys, "argv", testargs)
988+
989+
cli.main()
990+
991+
tag_exists=git.tag_exist(expected_version_after_bump)
992+
asserttag_existsisTrue
993+
994+
forversion_filein [
995+
tmp_commitizen_project.join("__version__.py"),
996+
tmp_commitizen_project.join("pyproject.toml"),
997+
]:
998+
withopen(version_file) asf:
999+
assertexpected_version_after_bumpinf.read()
1000+
1001+
9691002
@pytest.mark.parametrize("commit_msg", ("feat: new file", "feat(user): new file"))
9701003
deftest_bump_with_pre_bump_hooks(
9711004
commit_msg, mocker: MockFixture, tmp_commitizen_project

0 commit comments

Comments
(0)