kupferbootstrap/version/test_kbs_version.py

34 lines
1.3 KiB
Python

from pytest import mark
from typing import Optional
from .kbs import get_kbs_version, compare_kbs_version_generic
from .compare import VerComp
def test_get_kbs_version():
ver = get_kbs_version()
assert ver
assert ver.startswith("v")
@mark.parametrize(
"minimum_ver, kbs_ver, expected",
[
("v0.0.1", "v0.0.1", VerComp.EQUAL),
("v0.0.1", "v0.0.2", VerComp.RIGHT_NEWER),
("v0.0.1-rc0", "v0.0.1-rc1", VerComp.RIGHT_NEWER),
("v0.0.1-rc1", "v0.0.1", VerComp.RIGHT_NEWER),
("v0.0.1-rc3", "v0.0.2", VerComp.RIGHT_NEWER),
("v0.0.1-rc4", "v0.0.1-rc4-3-g12ab34de", VerComp.RIGHT_NEWER),
("v0.0.1-rc4-3", "v0.0.1-rc4-3-g12ab34de", VerComp.RIGHT_NEWER),
("v0.0.1", "v0.0.1-rc4-3-g12ab34de", VerComp.RIGHT_OLDER),
("v0.0.2", "v0.0.1-rc4-3-g12ab34de", VerComp.RIGHT_OLDER),
("v0.0.2", None, None),
("v0.0.2", "v0.1.0", VerComp.RIGHT_NEWER),
("v0.0.2", "v1.0.0", VerComp.RIGHT_NEWER),
("v0.2.2", "v0.1.0", VerComp.RIGHT_OLDER),
("v0.2.2", "v1.0.0", VerComp.RIGHT_NEWER),
],
)
def test_kbs_version_compare(minimum_ver: str, kbs_ver: str, expected: Optional[VerComp]):
assert compare_kbs_version_generic(kbs_version=kbs_ver, minimum_ver=minimum_ver) == expected