49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
import pytest
|
|
|
|
from ...migrations._version import parse_version
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"version,expected",
|
|
[
|
|
# fmt: off
|
|
("3.0.0-alpha", (3, 0, 0, -2, 0, 0)),
|
|
("3.1.0-alpha.1", (3, 1, 0, -2, 1, 0)),
|
|
("3.0.1-alpha.1.2", (3, 0, 1, -2, 1, 2)),
|
|
("3.0.0-beta", (3, 0, 0, -1, 0, 0)),
|
|
("3.0.0-beta.10", (3, 0, 0, -1, 10, 0)),
|
|
("2.5.2", (2, 5, 2, 0, 0, 0)),
|
|
("3.0.0", (3, 0, 0, 0, 0, 0)),
|
|
("3.0", (3, 0, 0, 0, 0, 0)),
|
|
("3", (3, 0, 0, 0, 0, 0)),
|
|
# fmt: on
|
|
],
|
|
)
|
|
def test_parse_version(version: str, expected):
|
|
assert parse_version(version) == expected
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"before,after",
|
|
[
|
|
# fmt: off
|
|
("3.0.0-alpha", "3.0.0-alpha.1"),
|
|
("3.0.0-alpha.1", "3.0.0-alpha.2"),
|
|
("3.0.0-alpha.1", "3.0.0-alpha.1.1"),
|
|
("3.0.0-alpha", "3.0.0-beta"),
|
|
("3.0.0-beta", "3.0.0"),
|
|
("3.0.0", "3.0.1"),
|
|
("3.0.0", "3.1.0"),
|
|
("3.0.0", "4.0.0"),
|
|
("2.5.3", "3.0.0"),
|
|
("3.0.0", "3.0.0"),
|
|
("3.0", "3.1"),
|
|
("3", "4"),
|
|
# fmt: on
|
|
],
|
|
)
|
|
def test_version_compare(before: str, after: str):
|
|
version_before = parse_version(before)
|
|
version_after = parse_version(after)
|
|
assert version_before <= version_after
|