Skip to content

Commit 3918ebc

Browse files
authored
Merge branch 'main' into build-meta
2 parents 0237ee6 + 599b4ff commit 3918ebc

File tree

5 files changed

+97
-24
lines changed

5 files changed

+97
-24
lines changed

.coveragerc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@
55
exclude_also =
66
# Don't complain if non-runnable code isn't run:
77
if __name__ == .__main__.:
8+
if TYPE_CHECKING:

.pre-commit-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ repos:
1717
rev: v0.11.5
1818
hooks:
1919
- id: ruff
20+
args: [--fix]
2021
- id: ruff-format
2122

2223
- repo: https://github.com/python-jsonschema/check-jsonschema

build_docs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,6 +1024,7 @@ def parse_args() -> argparse.Namespace:
10241024
description="Runs a build of the Python docs for various branches.",
10251025
allow_abbrev=False,
10261026
)
1027+
parser.suggest_on_error = True
10271028
parser.add_argument(
10281029
"--select-output",
10291030
choices=("no-html", "only-html", "only-html-en"),

config.toml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ sphinxopts = [
1515
"-D latex_elements.fontenc=",
1616
]
1717

18+
[languages.el]
19+
name = "Greek"
20+
translated_name = "Ελληνικά"
21+
1822
[languages.en]
1923
name = "English"
2024

@@ -36,6 +40,11 @@ sphinxopts = [
3640
'-D latex_elements.fontenc=\\usepackage{fontspec}',
3741
]
3842

43+
[languages.bn_IN]
44+
name = "Bengali"
45+
translated_name = "বাংলা"
46+
in_prod = false
47+
3948
[languages.id]
4049
name = "Indonesian"
4150
translated_name = "Indonesia"
@@ -87,6 +96,11 @@ translated_name = "polski"
8796
name = "Brazilian Portuguese"
8897
translated_name = "Português brasileiro"
8998

99+
[languages.ro]
100+
name = "Romanian"
101+
translated_name = "Românește"
102+
in_prod = false
103+
90104
[languages.tr]
91105
name = "Turkish"
92106
translated_name = "Türkçe"

tests/test_build_docs_versions.py

Lines changed: 80 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1+
from __future__ import annotations
2+
3+
import pytest
4+
15
from build_docs import Version, Versions
26

37

4-
def test_filter_default() -> None:
5-
# Arrange
6-
versions = Versions([
8+
@pytest.fixture
9+
def versions() -> Versions:
10+
return Versions([
711
Version(name="3.14", status="in development", branch_or_tag=""),
812
Version(name="3.13", status="stable", branch_or_tag=""),
913
Version(name="3.12", status="stable", branch_or_tag=""),
@@ -12,46 +16,98 @@ def test_filter_default() -> None:
1216
Version(name="3.9", status="security-fixes", branch_or_tag=""),
1317
])
1418

19+
20+
def test_reversed(versions: Versions) -> None:
1521
# Act
16-
filtered = versions.filter()
22+
output = list(reversed(versions))
1723

1824
# Assert
19-
assert filtered == [
20-
Version(name="3.14", status="in development", branch_or_tag=""),
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 == [
2155
Version(name="3.13", status="stable", branch_or_tag=""),
22-
Version(name="3.12", status="stable", branch_or_tag=""),
56+
Version(name="3.14", status="in development", branch_or_tag=""),
2357
]
2458

2559

26-
def test_filter_one() -> None:
60+
def test_from_json_error() -> None:
2761
# Arrange
28-
versions = Versions([
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+
90+
def test_filter_default(versions) -> None:
91+
# Act
92+
filtered = versions.filter()
93+
94+
# Assert
95+
assert filtered == [
2996
Version(name="3.14", status="in development", branch_or_tag=""),
3097
Version(name="3.13", status="stable", branch_or_tag=""),
3198
Version(name="3.12", status="stable", branch_or_tag=""),
32-
Version(name="3.11", status="security-fixes", branch_or_tag=""),
33-
Version(name="3.10", status="security-fixes", branch_or_tag=""),
34-
Version(name="3.9", status="security-fixes", branch_or_tag=""),
35-
])
99+
]
100+
36101

102+
def test_filter_one(versions) -> None:
37103
# Act
38104
filtered = versions.filter(["3.13"])
39105

40106
# Assert
41107
assert filtered == [Version(name="3.13", status="security-fixes", branch_or_tag="")]
42108

43109

44-
def test_filter_multiple() -> None:
45-
# Arrange
46-
versions = Versions([
47-
Version(name="3.14", status="in development", branch_or_tag=""),
48-
Version(name="3.13", status="stable", branch_or_tag=""),
49-
Version(name="3.12", status="stable", branch_or_tag=""),
50-
Version(name="3.11", status="security-fixes", branch_or_tag=""),
51-
Version(name="3.10", status="security-fixes", branch_or_tag=""),
52-
Version(name="3.9", status="security-fixes", branch_or_tag=""),
53-
])
54-
110+
def test_filter_multiple(versions) -> None:
55111
# Act
56112
filtered = versions.filter(["3.13", "3.14"])
57113

0 commit comments

Comments
 (0)