mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-12 06:20:08 +01:00
134 lines
3.9 KiB
Python
134 lines
3.9 KiB
Python
import random
|
|
import datetime as dt
|
|
|
|
from pycalver import version
|
|
|
|
|
|
def test_current_calver():
|
|
v = version.current_calver()
|
|
assert len(v) == 7
|
|
assert v.startswith("v")
|
|
assert v[1:].isdigit()
|
|
|
|
|
|
def test_bump_beta():
|
|
calver = version.current_calver()
|
|
cur_version = calver + ".0001-beta"
|
|
assert cur_version < version.incr(cur_version)
|
|
assert version.incr(cur_version).endswith("-beta")
|
|
assert version.incr(cur_version, release="alpha").endswith("-alpha")
|
|
assert version.incr(cur_version, release="final").endswith("0002")
|
|
|
|
|
|
def test_bump_final():
|
|
calver = version.current_calver()
|
|
cur_version = calver + ".0001"
|
|
assert cur_version < version.incr(cur_version)
|
|
assert version.incr(cur_version, release="alpha").endswith("-alpha")
|
|
assert version.incr(cur_version, release="final").endswith("0002")
|
|
assert version.incr(cur_version).endswith("0002")
|
|
|
|
|
|
def test_bump_future():
|
|
future_date = dt.datetime.today() + dt.timedelta(days=300)
|
|
future_calver = future_date.strftime("v%Y%m")
|
|
cur_version = future_calver + ".0001"
|
|
assert cur_version < version.incr(cur_version)
|
|
|
|
|
|
def test_bump_random(monkeypatch):
|
|
cur_date = dt.date.today()
|
|
cur_version = cur_date.strftime("v%Y%m") + ".0001-dev"
|
|
|
|
def _mock_current_calver():
|
|
return cur_date.strftime("v%Y%m")
|
|
|
|
monkeypatch.setattr(version, 'current_calver', _mock_current_calver)
|
|
|
|
for i in range(1000):
|
|
cur_date += dt.timedelta(days=int((1 + random.random()) ** 10))
|
|
new_version = version.incr(
|
|
cur_version, release=random.choice([None, "alpha", "beta", "rc", 'final'])
|
|
)
|
|
assert cur_version < new_version
|
|
cur_version = new_version
|
|
|
|
|
|
def test_parse_version_info():
|
|
version_str = "v201712.0001-alpha"
|
|
version_nfo = version.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"
|
|
|
|
version_str = "v201712.0001"
|
|
version_nfo = version.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.release is None
|
|
|
|
|
|
def test_readme_pycalver1():
|
|
version_str = "v201712.0001-alpha"
|
|
version_info = version.PYCALVER_RE.match(version_str).groupdict()
|
|
|
|
assert version_info == {
|
|
'version' : "v201712.0001-alpha",
|
|
'calver' : "v201712",
|
|
'year' : "2017",
|
|
'month' : "12",
|
|
'build' : ".0001",
|
|
'build_no' : "0001",
|
|
'release' : "-alpha",
|
|
'release_tag': "alpha",
|
|
}
|
|
|
|
|
|
def test_readme_pycalver2():
|
|
version_str = "v201712.0033"
|
|
version_info = version.PYCALVER_RE.match(version_str).groupdict()
|
|
|
|
assert version_info == {
|
|
'version' : "v201712.0033",
|
|
'calver' : "v201712",
|
|
'year' : "2017",
|
|
'month' : "12",
|
|
'build' : ".0033",
|
|
'build_no' : "0033",
|
|
'release' : None,
|
|
'release_tag': None,
|
|
}
|
|
|
|
|
|
def test_parse_error_empty():
|
|
try:
|
|
version.parse_version_info("")
|
|
assert False
|
|
except ValueError as err:
|
|
pass
|
|
|
|
|
|
def test_parse_error_noprefix():
|
|
try:
|
|
version.parse_version_info("201809.0002")
|
|
assert False
|
|
except ValueError as err:
|
|
pass
|
|
|
|
|
|
def test_parse_error_nopadding():
|
|
try:
|
|
version.parse_version_info("v201809.2b0")
|
|
assert False
|
|
except ValueError as err:
|
|
pass
|