Skip to content

Commit e24ff2d

Browse files
committed
test(git): add test case for get tags functions
1 parent 85027f7 commit e24ff2d

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

tests/test_git.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
from commitizen import git
22

33

4+
class FakeCommand:
5+
def __init__(self, out=None, err=None):
6+
self.out = out
7+
self.err = err
8+
9+
410
def test_git_object_eq():
511
git_commit = git.GitCommit(
612
rev="sha1-code", title="this is title", body="this is body"
@@ -9,3 +15,35 @@ def test_git_object_eq():
915

1016
assert git_commit == git_tag
1117
assert git_commit != "sha1-code"
18+
19+
20+
def test_get_tags(mocker):
21+
tag_str = (
22+
"v1.0.0---inner_delimiter---333---inner_delimiter---2020-01-20\n"
23+
"v0.5.0---inner_delimiter---222---inner_delimiter---2020-01-17\n"
24+
"v0.0.1---inner_delimiter---111---inner_delimiter---2020-01-17\n"
25+
)
26+
mocker.patch("commitizen.cmd.run", return_value=FakeCommand(out=tag_str))
27+
28+
git_tags = git.get_tags()
29+
latest_git_tag = git_tags[0]
30+
assert latest_git_tag.rev == "333"
31+
assert latest_git_tag.name == "v1.0.0"
32+
assert latest_git_tag.date == "2020-01-20"
33+
34+
mocker.patch(
35+
"commitizen.cmd.run", return_value=FakeCommand(out="", err="No tag available")
36+
)
37+
assert git.get_tags() == []
38+
39+
40+
def test_get_tag_names(mocker):
41+
tag_str = "v1.0.0\n" "v0.5.0\n" "v0.0.1\n"
42+
mocker.patch("commitizen.cmd.run", return_value=FakeCommand(out=tag_str))
43+
44+
assert git.get_tag_names() == ["v1.0.0", "v0.5.0", "v0.0.1"]
45+
46+
mocker.patch(
47+
"commitizen.cmd.run", return_value=FakeCommand(out="", err="No tag available")
48+
)
49+
assert git.get_tag_names() == []

0 commit comments

Comments
 (0)