Skip to content

Commit c50979a

Browse files
add a test addressing #266 demonstraing its not a git issue
1 parent 7cd319b commit c50979a

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

src/setuptools_scm/git.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,19 +111,26 @@ def parse(root, describe_command=DEFAULT_DESCRIBE, pre_parse=warn_on_shallow):
111111
dirty=dirty,
112112
branch=wd.get_branch(),
113113
)
114+
else:
115+
tag, number, node, dirty = _git_parse_describe(out)
116+
117+
branch = wd.get_branch()
118+
if number:
119+
return meta(tag, distance=number, node=node, dirty=dirty, branch=branch)
120+
else:
121+
return meta(tag, node=node, dirty=dirty, branch=branch)
122+
114123

115-
# 'out' looks e.g. like 'v1.5.0-0-g4060507' or
124+
def _git_parse_describe(describe_output):
125+
# 'describe_output' looks e.g. like 'v1.5.0-0-g4060507' or
116126
# 'v1.15.1rc1-37-g9bd1298-dirty'.
117-
if out.endswith("-dirty"):
127+
128+
if describe_output.endswith("-dirty"):
118129
dirty = True
119-
out = out[:-6]
130+
describe_output = describe_output[:-6]
120131
else:
121132
dirty = False
122133

123-
tag, number, node = out.rsplit("-", 2)
134+
tag, number, node = describe_output.rsplit("-", 2)
124135
number = int(number)
125-
branch = wd.get_branch()
126-
if number:
127-
return meta(tag, distance=number, node=node, dirty=dirty, branch=branch)
128-
else:
129-
return meta(tag, node=node, dirty=dirty, branch=branch)
136+
return tag, number, node, dirty

testing/test_git.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,15 @@ def wd(wd):
1616
return wd
1717

1818

19+
@pytest.mark.parametrize(
20+
"given, tag, number, node, dirty",
21+
[("3.3.1-rc26-0-g9df187b", "3.3.1-rc26", 0, "g9df187b", False)],
22+
)
23+
def test_parse_describe_output(given, tag, number, node, dirty):
24+
parsed = git._git_parse_describe(given)
25+
assert parsed == (tag, number, node, dirty)
26+
27+
1928
def test_version_from_git(wd):
2029
assert wd.version == "0.1.dev0"
2130

0 commit comments

Comments
 (0)