fix gitlab #4: make {release} tag optional

This commit is contained in:
Manuel Barkhau 2019-07-09 08:21:57 +02:00
parent e17165827f
commit b893995cbc
3 changed files with 31 additions and 3 deletions

View file

@ -78,7 +78,7 @@ COMPOSITE_PART_PATTERNS = {
'semver' : r"{MAJOR}\.{MINOR}\.{PATCH}", 'semver' : r"{MAJOR}\.{MINOR}\.{PATCH}",
'release_tag' : r"{tag}", 'release_tag' : r"{tag}",
'build' : r"\.{bid}", 'build' : r"\.{bid}",
'release' : r"-{tag}", 'release' : r"(?:-{tag})?",
# depricated # depricated
'pep440_version': r"{year}{month}\.{BID}(?:{pep440_tag})?", 'pep440_version': r"{year}{month}\.{BID}(?:{pep440_tag})?",
} }

View file

@ -37,8 +37,8 @@ PATTERN_PART_CASES = [
("release" , "-dev" , "-dev"), ("release" , "-dev" , "-dev"),
("release" , "-rc" , "-rc"), ("release" , "-rc" , "-rc"),
("release" , "-post" , "-post"), ("release" , "-post" , "-post"),
("release" , "-pre" , None), ("release" , "-pre" , ""),
("release" , "alpha" , None), ("release" , "alpha" , ""),
] ]

View file

@ -100,3 +100,31 @@ def test_error_bad_pattern():
assert False, "expected rewrite.NoPatternMatch" assert False, "expected rewrite.NoPatternMatch"
except rewrite.NoPatternMatch as ex: except rewrite.NoPatternMatch as ex:
assert "setup.py" in str(ex) assert "setup.py" in str(ex)
OPTIONAL_RELEASE_FIXTURE = """
# SPDX-License-Identifier: BSD
__version__ = "2018.0002-beta"
"""
def test_optional_release():
old_lines = OPTIONAL_RELEASE_FIXTURE.splitlines()
pattern = "{year}.{build_no}{release}"
patterns = ['__version__ = "{year}.{build_no}{release}"']
new_vinfo = version.parse_version_info("2019.0003", pattern)
new_lines = rewrite.rewrite_lines(patterns, new_vinfo, old_lines)
assert len(new_lines) == len(old_lines)
assert "2019.0003" not in "\n".join(old_lines)
new_text = "\n".join(new_lines)
assert "2019.0003" in new_text
new_vinfo = version.parse_version_info("2019.0004-beta", pattern)
new_lines = rewrite.rewrite_lines(patterns, new_vinfo, old_lines)
# make sure optional release tag is added back on
assert len(new_lines) == len(old_lines)
assert "2019.0004-beta" not in "\n".join(old_lines)
assert "2019.0004-beta" in "\n".join(new_lines)