Skip to content

Commit 3fef485

Browse files
committed
Add more tests for Versions class
1 parent a17b4c3 commit 3fef485

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

tests/test_build_docs_versions.py

+70
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,76 @@ def versions() -> Versions:
1717
])
1818

1919

20+
def test_reversed(versions) -> None:
21+
# Act
22+
output = list(reversed(versions))
23+
24+
# Assert
25+
assert output[0].name == "3.9"
26+
assert output[-1].name == "3.14"
27+
28+
29+
def test_from_json() -> None:
30+
# Arrange
31+
json_data = {
32+
"3.14": {
33+
"branch": "main",
34+
"pep": 745,
35+
"status": "feature",
36+
"first_release": "2025-10-01",
37+
"end_of_life": "2030-10",
38+
"release_manager": "Hugo van Kemenade",
39+
},
40+
"3.13": {
41+
"branch": "3.13",
42+
"pep": 719,
43+
"status": "bugfix",
44+
"first_release": "2024-10-07",
45+
"end_of_life": "2029-10",
46+
"release_manager": "Thomas Wouters",
47+
},
48+
}
49+
50+
# Act
51+
versions = list(Versions.from_json(json_data))
52+
53+
# Assert
54+
assert versions == [
55+
Version(name="3.13", status="stable", branch_or_tag=""),
56+
Version(name="3.14", status="in development", branch_or_tag=""),
57+
]
58+
59+
60+
def test_from_json_error() -> None:
61+
# Arrange
62+
json_data = {"2.8": {"branch": "2.8", "pep": 404, "status": "ex-release"}}
63+
64+
# Act / Assert
65+
with pytest.raises(
66+
ValueError,
67+
match="Saw invalid version status 'ex-release', expected to be one of",
68+
):
69+
Versions.from_json(json_data)
70+
71+
72+
def test_current_stable(versions) -> None:
73+
# Act
74+
current_stable = versions.current_stable
75+
76+
# Assert
77+
assert current_stable.name == "3.13"
78+
assert current_stable.status == "stable"
79+
80+
81+
def test_current_dev(versions) -> None:
82+
# Act
83+
current_dev = versions.current_dev
84+
85+
# Assert
86+
assert current_dev.name == "3.14"
87+
assert current_dev.status == "in development"
88+
89+
2090
def test_filter_default(versions) -> None:
2191
# Act
2292
filtered = versions.filter()

0 commit comments

Comments
 (0)