Skip to content

Commit b04e1be

Browse files
committed
Test the Version class
1 parent cc5e153 commit b04e1be

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

Diff for: tests/test_build_docs_version.py

+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
from __future__ import annotations
2+
3+
import pytest
4+
5+
from build_docs import Version
6+
7+
8+
def test_equality() -> None:
9+
# Arrange
10+
version1 = Version(name="3.13", status="stable", branch_or_tag="3.13")
11+
version2 = Version(name="3.13", status="stable", branch_or_tag="3.13")
12+
13+
# Act / Assert
14+
assert version1 == version2
15+
16+
17+
@pytest.mark.parametrize(
18+
("name", "expected"),
19+
[
20+
("3.13", "-rrequirements.txt"),
21+
("3.10", "standard-imghdr"),
22+
("3.7", "sphinx==2.3.1"),
23+
("3.5", "sphinx==1.8.4"),
24+
],
25+
)
26+
def test_requirements(name: str, expected: str) -> None:
27+
# Arrange
28+
version = Version(name=name, status="stable", branch_or_tag="")
29+
30+
# Act
31+
requirements = version.requirements
32+
33+
# Assert
34+
assert expected in requirements
35+
36+
37+
def test_requirements_error() -> None:
38+
# Arrange
39+
version = Version(name="2.8", status="ex-release", branch_or_tag="")
40+
41+
# Act / Assert
42+
with pytest.raises(ValueError, match="unreachable"):
43+
_ = version.requirements
44+
45+
46+
@pytest.mark.parametrize(
47+
("status", "expected"),
48+
[
49+
("EOL", "never"),
50+
("security-fixes", "yearly"),
51+
("stable", "daily"),
52+
],
53+
)
54+
def test_changefreq(status: str, expected: str) -> None:
55+
# Arrange
56+
version = Version(name="3.13", status=status, branch_or_tag="")
57+
58+
# Act / Assert
59+
assert version.changefreq == expected
60+
61+
62+
def test_url() -> None:
63+
# Arrange
64+
version = Version(name="3.13", status="stable", branch_or_tag="")
65+
66+
# Act / Assert
67+
assert version.url == "https://docs.python.org/3.13/"
68+
69+
70+
def test_title() -> None:
71+
# Arrange
72+
version = Version(name="3.14", status="in development", branch_or_tag="")
73+
74+
# Act / Assert
75+
assert version.title == "Python 3.14 (in development)"
76+
77+
78+
@pytest.mark.parametrize(
79+
("name", "status", "expected"),
80+
[
81+
("3.15", "in development", "dev (3.15)"),
82+
("3.14", "pre-release", "pre (3.14)"),
83+
("3.13", "stable", "3.13"),
84+
],
85+
)
86+
def test_picker_label(name: str, status: str, expected: str) -> None:
87+
# Arrange
88+
version = Version(name=name, status=status, branch_or_tag="")
89+
90+
# Act / Assert
91+
assert version.picker_label == expected

0 commit comments

Comments
 (0)