Repository navigation
Expand file tree
/
Copy pathtest_blurb.py
More file actions
140 lines (117 loc) · 4.05 KB
/
Copy pathtest_blurb.py
File metadata and controls
140 lines (117 loc) · 4.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import pytest
from pyfakefs.fake_filesystem import FakeFilesystem
import blurb
UNCHANGED_SECTIONS = (
"C API",
"Core and Builtins",
"Library",
)
@pytest.mark.parametrize("section", UNCHANGED_SECTIONS)
def test_sanitize_section_no_change(section: str) -> None:
sanitized = blurb.sanitize_section(section)
assert sanitized == section
@pytest.mark.parametrize(
"section, expected",
(
("Tools/Demos", "Tools-Demos"),
),
)
def test_sanitize_section_changed(section: str, expected: str) -> None:
sanitized = blurb.sanitize_section(section)
assert sanitized == expected
@pytest.mark.parametrize("section", UNCHANGED_SECTIONS)
def test_unsanitize_section_no_change(section: str) -> None:
unsanitized = blurb.unsanitize_section(section)
assert unsanitized == section
@pytest.mark.parametrize(
"section, expected",
(
("Tools-Demos", "Tools/Demos"),
),
)
def test_unsanitize_section_changed(section: str, expected: str) -> None:
unsanitized = blurb.unsanitize_section(section)
assert unsanitized == expected
def test_glob_blurbs_next(fs: FakeFilesystem) -> None:
# Arrange
fake_news_entries = (
"Misc/NEWS.d/next/Library/2022-04-11-18-34-33.gh-issue-11111.pC7gnM.rst",
"Misc/NEWS.d/next/Core and Builtins/2023-03-17-12-09-45.gh-issue-33333.Pf_BI7.rst",
"Misc/NEWS.d/next/Tools-Demos/2023-03-21-01-27-07.gh-issue-44444.2F1Byz.rst",
"Misc/NEWS.d/next/C API/2023-03-27-22-09-07.gh-issue-66666.3SN8Bs.rst",
)
fake_readmes = (
"Misc/NEWS.d/next/Library/README.rst",
"Misc/NEWS.d/next/Core and Builtins/README.rst",
"Misc/NEWS.d/next/Tools-Demos/README.rst",
"Misc/NEWS.d/next/C API/README.rst",
)
for fn in fake_news_entries + fake_readmes:
fs.create_file(fn)
# Act
filenames = blurb.glob_blurbs("next")
# Assert
assert set(filenames) == set(fake_news_entries)
@pytest.mark.parametrize(
"news_entry, expected_section",
(
(
"Misc/NEWS.d/next/Library/2022-04-11-18-34-33.gh-issue-55555.pC7gnM.rst",
"Library",
),
(
"Misc/NEWS.d/next/Core and Builtins/2023-03-17-12-09-45.gh-issue-33333.Pf_BI7.rst",
"Core and Builtins",
),
(
"Misc/NEWS.d/next/Tools-Demos/2023-03-21-01-27-07.gh-issue-44444.2F1Byz.rst",
"Tools/Demos",
),
(
"Misc/NEWS.d/next/C API/2023-03-27-22-09-07.gh-issue-66666.3SN8Bs.rst",
"C API",
),
),
)
def test_load_next(news_entry: str, expected_section: str, fs: FakeFilesystem) -> None:
# Arrange
fs.create_file(news_entry, contents="testing")
blurbs = blurb.Blurbs()
# Act
blurbs.load_next(news_entry)
# Assert
metadata = blurbs[0][0]
assert metadata["section"] == expected_section
@pytest.mark.parametrize(
"news_entry, expected_path",
(
(
"Misc/NEWS.d/next/Library/2022-04-11-18-34-33.gh-issue-55555.pC7gnM.rst",
"root/Misc/NEWS.d/next/Library/2022-04-11-18-34-33.gh-issue-55555.pC7gnM.rst",
),
(
"Misc/NEWS.d/next/Core and Builtins/2023-03-17-12-09-45.gh-issue-33333.Pf_BI7.rst",
"root/Misc/NEWS.d/next/Core and Builtins/2023-03-17-12-09-45.gh-issue-33333.Pf_BI7.rst",
),
(
"Misc/NEWS.d/next/Tools-Demos/2023-03-21-01-27-07.gh-issue-44444.2F1Byz.rst",
"root/Misc/NEWS.d/next/Tools-Demos/2023-03-21-01-27-07.gh-issue-44444.2F1Byz.rst",
),
(
"Misc/NEWS.d/next/C API/2023-03-27-22-09-07.gh-issue-66666.3SN8Bs.rst",
"root/Misc/NEWS.d/next/C API/2023-03-27-22-09-07.gh-issue-66666.3SN8Bs.rst",
),
),
)
def test_extract_next_filename(
news_entry: str, expected_path: str, fs: FakeFilesystem
) -> None:
# Arrange
fs.create_file(news_entry, contents="testing")
blurb.root = "root"
blurbs = blurb.Blurbs()
blurbs.load_next(news_entry)
# Act
path = blurbs._extract_next_filename()
# Assert
assert path == expected_path