wip: misc project updates

This commit is contained in:
Manuel Barkhau 2018-11-04 21:11:42 +01:00
parent 2ca615d19b
commit e888be1f71
14 changed files with 219 additions and 438 deletions

View file

@ -3,30 +3,30 @@ from pycalver import parse
def test_readme_pycalver1():
version_str = "v201712.0001-alpha"
version_str = "v201712.0001-alpha"
version_info = parse.PYCALVER_RE.match(version_str).groupdict()
assert version_info == {
"version" : "v201712.0001-alpha",
"calver" : "v201712",
"year" : "2017",
"month" : "12",
"build" : ".0001",
"release" : "-alpha",
'version': "v201712.0001-alpha",
'calver' : "v201712",
'year' : "2017",
'month' : "12",
'build' : ".0001",
'release': "-alpha",
}
def test_readme_pycalver2():
version_str = "v201712.0033"
version_str = "v201712.0033"
version_info = parse.PYCALVER_RE.match(version_str).groupdict()
assert version_info == {
"version" : "v201712.0033",
"calver" : "v201712",
"year" : "2017",
"month" : "12",
"build" : ".0033",
"release" : None,
'version': "v201712.0033",
'calver' : "v201712",
'year' : "2017",
'month' : "12",
'build' : ".0033",
'release': None,
}
@ -37,35 +37,35 @@ def test_re_pattern_parts():
}
cases = [
("pep440_version", "201712.31", "201712.31"),
("pep440_version", "v201712.0032", None),
("pep440_version", "201712.0033-alpha", None),
("version", "v201712.0034", "v201712.0034"),
("version", "v201712.0035-alpha", "v201712.0035-alpha"),
("version", "v201712.0036-alpha0", "v201712.0036-alpha"),
("version", "v201712.0037-pre", "v201712.0037"),
("version", "201712.38a0", None),
("version", "201712.0039", None),
("calver", "v201712", "v201712"),
("calver", "v201799", "v201799"), # maybe date validation should be a thing
("calver", "201712", None),
("calver", "v20171", None),
("build", ".0012", ".0012"),
("build", ".11012", ".11012"),
("build", ".012", None),
("build", "11012", None),
("release", "-alpha", "-alpha"),
("release", "-beta", "-beta"),
("release", "-dev", "-dev"),
("release", "-rc", "-rc"),
("release", "-post", "-post"),
("release", "-pre", ""),
("release", "alpha", ""),
("pep440_version", "201712.31" , "201712.31"),
("pep440_version", "v201712.0032" , None),
("pep440_version", "201712.0033-alpha" , None),
("version" , "v201712.0034" , "v201712.0034"),
("version" , "v201712.0035-alpha" , "v201712.0035-alpha"),
("version" , "v201712.0036-alpha0", "v201712.0036-alpha"),
("version" , "v201712.0037-pre" , "v201712.0037"),
("version" , "201712.38a0" , None),
("version" , "201712.0039" , None),
("calver" , "v201712" , "v201712"),
("calver" , "v201799" , "v201799"), # maybe date validation should be a thing
("calver" , "201712" , None),
("calver" , "v20171" , None),
("build" , ".0012" , ".0012"),
("build" , ".11012" , ".11012"),
("build" , ".012" , None),
("build" , "11012" , None),
("release" , "-alpha" , "-alpha"),
("release" , "-beta" , "-beta"),
("release" , "-dev" , "-dev"),
("release" , "-rc" , "-rc"),
("release" , "-post" , "-post"),
("release" , "-pre" , ""),
("release" , "alpha" , ""),
]
for part_name, line, expected in cases:
part_re = part_re_by_name[part_name]
result = part_re.search(line)
result = part_re.search(line)
if result is None:
assert expected is None, (part_name, line)
else:
@ -78,22 +78,22 @@ def test_parse_version_info():
version_nfo = parse.parse_version_info(version_str)
assert version_nfo.pep440_version == "201712.1a0"
assert version_nfo.version == "v201712.0001-alpha"
assert version_nfo.calver == "v201712"
assert version_nfo.year == "2017"
assert version_nfo.month == "12"
assert version_nfo.build == ".0001"
assert version_nfo.release == "-alpha"
assert version_nfo.version == "v201712.0001-alpha"
assert version_nfo.calver == "v201712"
assert version_nfo.year == "2017"
assert version_nfo.month == "12"
assert version_nfo.build == ".0001"
assert version_nfo.release == "-alpha"
version_str = "v201712.0001"
version_nfo = parse.parse_version_info(version_str)
assert version_nfo.pep440_version == "201712.1"
assert version_nfo.version == "v201712.0001"
assert version_nfo.calver == "v201712"
assert version_nfo.year == "2017"
assert version_nfo.month == "12"
assert version_nfo.build == ".0001"
assert version_nfo.version == "v201712.0001"
assert version_nfo.calver == "v201712"
assert version_nfo.year == "2017"
assert version_nfo.month == "12"
assert version_nfo.build == ".0001"
assert version_nfo.release is None
@ -107,10 +107,7 @@ def test_default_parse_patterns():
" version='201712.2a0',",
]
patterns = [
"{version}",
"{pep440_version}",
]
patterns = ["{version}", "{pep440_version}"]
matches = parse.parse_patterns(lines, patterns)
assert len(matches) == 2
@ -135,10 +132,7 @@ def test_explicit_parse_patterns():
" version='201712.2a0',",
]
patterns = [
"__version__ = '{version}'",
"version='{pep440_version}'",
]
patterns = ["__version__ = '{version}'", "version='{pep440_version}'"]
matches = parse.parse_patterns(lines, patterns)
assert len(matches) == 2
@ -163,10 +157,7 @@ def test_badge_parse_patterns():
"",
]
patterns = [
"badge/CalVer-{calver}{build}-{release}-blue.svg",
":alt: CalVer {version}",
]
patterns = ["badge/CalVer-{calver}{build}-{release}-blue.svg", ":alt: CalVer {version}"]
matches = parse.parse_patterns(lines, patterns)
assert len(matches) == 2
@ -179,3 +170,23 @@ def test_badge_parse_patterns():
assert matches[0].match == "badge/CalVer-v201809.0002--beta-blue.svg"
assert matches[1].match == ":alt: CalVer v201809.0002-beta"
def test_parse_error():
try:
parse.parse_version_info("")
assert False
except ValueError as err:
pass
try:
parse.parse_version_info("201809.0002")
assert False
except ValueError as err:
pass
try:
parse.parse_version_info("v201809.2b0")
assert False
except ValueError as err:
pass