kupferbootstrap/tests/version/test_kbs_version.py
2025-03-29 21:52:01 +01:00

44 lines
1.4 KiB
Python

from pytest import mark
from typing import Optional
from kupferbootstrap.version.kbs import (
get_kbs_version,
compare_kbs_version_generic,
)
from kupferbootstrap.version.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
)