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

Lines changed: 70 additions & 0 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy