Skip to content

Commit 0638817

Browse files
committed
test: add test cases to version tests
1 parent 75a1d7d commit 0638817

File tree

1 file changed

+64
-10
lines changed

1 file changed

+64
-10
lines changed

Diff for: tests/test_version.py

+64-10
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,71 @@
1+
from typing import Any, Tuple
2+
13
import packaging
4+
import pytest
25
from packaging.version import Version
36

4-
from graphql_server.version import version, version_info
5-
6-
RELEASE_LEVEL = {"alpha": "a", "beta": "b", "rc": "rc", "final": None}
7+
from graphql_server.version import (
8+
version as VERSION,
9+
version_info as VERSION_INFO,
10+
)
711

12+
VersionInfoType = Tuple[int, int, int, str, int]
813

9-
parsed_version = Version(version)
10-
14+
RELEASE_LEVEL = {"alpha": "a", "beta": "b", "rc": "rc", "final": None}
1115

12-
def test_valid_version() -> None:
16+
VERSION_AND_VERSION_INFO = [
17+
(
18+
"1.2.3",
19+
(1, 2, 3, "final", 0),
20+
),
21+
(
22+
"1.2.3a4",
23+
(1, 2, 3, "alpha", 4),
24+
),
25+
(
26+
"1.2.3b4",
27+
(1, 2, 3, "beta", 4),
28+
),
29+
(
30+
"12.34.56rc789",
31+
(12, 34, 56, "rc", 789),
32+
),
33+
(
34+
VERSION,
35+
VERSION_INFO,
36+
),
37+
]
38+
39+
40+
@pytest.fixture(params=VERSION_AND_VERSION_INFO)
41+
def version_and_version_info(
42+
request: pytest.FixtureRequest,
43+
) -> Tuple[str, VersionInfoType]:
44+
return request.param
45+
46+
47+
@pytest.fixture
48+
def version(version_and_version_info: Tuple[str, VersionInfoType]) -> str:
49+
return version_and_version_info[0]
50+
51+
52+
@pytest.fixture
53+
def version_info(
54+
version_and_version_info: Tuple[str, VersionInfoType]
55+
) -> VersionInfoType:
56+
return version_and_version_info[1]
57+
58+
59+
@pytest.fixture
60+
def parsed_version(version: str) -> Version:
61+
return Version(version)
62+
63+
64+
def test_valid_version(version: str) -> None:
1365
packaging.version.parse(version)
1466

1567

16-
def test_valid_version_info() -> None:
68+
def test_valid_version_info(version_info: Any) -> None:
1769
"""version_info has to be a tuple[int, int, int, str, int]"""
1870
assert isinstance(version_info, tuple)
1971
assert len(version_info) == 5
@@ -26,17 +78,19 @@ def test_valid_version_info() -> None:
2678
assert isinstance(serial, int)
2779

2880

29-
def test_valid_version_release_level() -> None:
81+
def test_valid_version_release_level(parsed_version: Version) -> None:
3082
if parsed_version.pre is not None:
3183
valid_release_levels = {v for v in RELEASE_LEVEL.values() if v is not None}
3284
assert parsed_version.pre[0] in valid_release_levels
3385

3486

35-
def test_valid_version_info_release_level() -> None:
87+
def test_valid_version_info_release_level(version_info: VersionInfoType) -> None:
3688
assert version_info[3] in RELEASE_LEVEL.keys()
3789

3890

39-
def test_version_same_as_version_info() -> None:
91+
def test_version_same_as_version_info(
92+
parsed_version: Version, version_info: VersionInfoType
93+
) -> None:
4094
assert (
4195
parsed_version.major,
4296
parsed_version.minor,

0 commit comments

Comments
 (0)