1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
import pytest
from semver import Version, finalize_version, format_version
@pytest.mark.parametrize(
"version,expected",
[
("1.2.3", "1.2.3"),
("1.2.3-rc.5", "1.2.3"),
("1.2.3+build.2", "1.2.3"),
("1.2.3-rc.1+build.5", "1.2.3"),
("1.2.3-alpha", "1.2.3"),
("1.2.0", "1.2.0"),
],
)
def test_should_finalize_version(version, expected):
assert finalize_version(version) == expected
def test_should_correctly_format_version():
assert format_version(3, 4, 5) == "3.4.5"
assert format_version(3, 4, 5, "rc.1") == "3.4.5-rc.1"
assert format_version(3, 4, 5, prerelease="rc.1") == "3.4.5-rc.1"
assert format_version(3, 4, 5, build="build.4") == "3.4.5+build.4"
assert format_version(3, 4, 5, "rc.1", "build.4") == "3.4.5-rc.1+build.4"
def test_parse_method_for_version_info():
s_version = "1.2.3-alpha.1.2+build.11.e0f985a"
v = Version.parse(s_version)
assert str(v) == s_version
@pytest.mark.parametrize(
"version, expected",
[
(
Version(major=1, minor=2, patch=3, prerelease=None, build=None),
"Version(major=1, minor=2, patch=3, prerelease=None, build=None)",
),
(
Version(major=1, minor=2, patch=3, prerelease="r.1", build=None),
"Version(major=1, minor=2, patch=3, prerelease='r.1', build=None)",
),
(
Version(major=1, minor=2, patch=3, prerelease="dev.1", build=None),
"Version(major=1, minor=2, patch=3, prerelease='dev.1', build=None)",
),
(
Version(major=1, minor=2, patch=3, prerelease="dev.1", build="b.1"),
"Version(major=1, minor=2, patch=3, prerelease='dev.1', build='b.1')",
),
(
Version(major=1, minor=2, patch=3, prerelease="r.1", build="b.1"),
"Version(major=1, minor=2, patch=3, prerelease='r.1', build='b.1')",
),
(
Version(major=1, minor=2, patch=3, prerelease="r.1", build="build.1"),
"Version(major=1, minor=2, patch=3, prerelease='r.1', build='build.1')",
),
],
)
def test_repr(version, expected):
assert repr(version) == expected
|