Skip to content

Commit fee0471

Browse files
author
George Song
committed
test: add tests for generate_pdf.list_files function
Former-commit-id: 25f0dfc
1 parent c5052d7 commit fee0471

23 files changed

+147
-5
lines changed

Diff for: .gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,10 @@ yarn-error.log
7474
__pycache__
7575

7676
# Project specific
77+
.project
78+
advocacy_docs/kubernetes/cloud_native_postgresql/*.md.in
7779
dev-sources.json
7880
product_docs/content/
7981
product_docs/content_build/
8082
static/nginx_redirects.generated
8183
temp_kubernetes/
82-
advocacy_docs/kubernetes/cloud_native_postgresql/*.md.in

Diff for: pytest.ini

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[pytest]
2+
minversion = 6.0
3+
testpaths =
4+
scripts

Diff for: requirements.in

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
pip-tools
2+
pytest

Diff for: requirements.txt

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#
2+
# This file is autogenerated by pip-compile
3+
# To update, run:
4+
#
5+
# pip-compile
6+
#
7+
attrs==21.2.0
8+
# via pytest
9+
click==8.0.1
10+
# via pip-tools
11+
iniconfig==1.1.1
12+
# via pytest
13+
packaging==20.9
14+
# via pytest
15+
pep517==0.10.0
16+
# via pip-tools
17+
pip-tools==6.1.0
18+
# via -r requirements.in
19+
pluggy==0.13.1
20+
# via pytest
21+
py==1.10.0
22+
# via pytest
23+
pyparsing==2.4.7
24+
# via packaging
25+
pytest==6.2.4
26+
# via -r requirements.in
27+
toml==0.10.2
28+
# via
29+
# pep517
30+
# pytest
31+
32+
# The following packages are considered to be unsafe in a requirements file:
33+
# pip

Diff for: scripts/pdf/__init__.py

Whitespace-only changes.

Diff for: scripts/pdf/__tests__/__init__.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Title'
3+
---
4+
5+
# Title
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Title'
3+
---
4+
5+
# Title
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Title'
3+
---
4+
5+
# Title
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Title'
3+
---
4+
5+
# Title
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Title'
3+
---
4+
5+
# Title
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Title'
3+
---
4+
5+
# Title
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Title'
3+
---
4+
5+
# Title
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from pathlib import Path
2+
3+
from ....generate_pdf import TocItem
4+
5+
expected = [
6+
TocItem(filename=Path(__file__).parent / "1/index.mdx", chapter=[1]),
7+
TocItem(filename=Path(__file__).parent / "1/1.1.mdx", chapter=[1, 1]),
8+
TocItem(filename=Path(__file__).parent / "1/1.2/index.mdx", chapter=[1, 2]),
9+
TocItem(filename=Path(__file__).parent / "1/1.2/1.2.1.mdx", chapter=[1, 2, 1]),
10+
TocItem(filename=Path(__file__).parent / "2/index.mdx", chapter=[2]),
11+
TocItem(filename=Path(__file__).parent / "2/2.1.mdx", chapter=[2, 1]),
12+
TocItem(filename=Path(__file__).parent / "3.mdx", chapter=[3]),
13+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
title: 'Title'
3+
---
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
expected = []
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
title: 'Title'
3+
---
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from pathlib import Path
2+
3+
from ....generate_pdf import TocItem
4+
5+
expected = [TocItem(filename=Path(__file__).parent / "index.mdx", chapter=[1])]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Title'
3+
---
4+
5+
# Title
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
expected = []
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 'Title'
3+
---
4+
5+
<StubCards product="efm" version="3.10" />
+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import importlib
2+
from collections import namedtuple
3+
from pathlib import Path
4+
from tempfile import mkdtemp
5+
6+
import pytest
7+
8+
from ..generate_pdf import list_files
9+
10+
base = Path(__file__).parent
11+
base_package = ".".join(__name__.split(".")[:-1])
12+
Scenario = namedtuple("Scenario", ("path", "expected_module"))
13+
14+
15+
def test_empty():
16+
tmp_path = Path(mkdtemp())
17+
assert list_files(tmp_path) == []
18+
tmp_path.rmdir()
19+
20+
21+
@pytest.fixture(params=(base / "list_files_test_cases").iterdir())
22+
def test_case(request):
23+
expected_module = ".".join(
24+
["", *str(request.param.relative_to(base)).split("/"), "expected"]
25+
)
26+
return Scenario(request.param, expected_module)
27+
28+
29+
def test_list_files(test_case):
30+
expected = importlib.import_module(test_case.expected_module, base_package)
31+
assert list_files(test_case.path) == expected.expected

Diff for: scripts/pdf/generate_pdf.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -186,12 +186,12 @@ def list_files(doc_path, chapter=None):
186186
)
187187

188188
for i, entry in enumerate(directory_contents):
189-
if entry.is_dir():
190-
chapter = chapter if i == 0 else advance_chapter(chapter)
191-
all_files += list_files(entry, chapter)
192-
else:
189+
if entry.is_file():
193190
chapter = [*chapter, 0] if i == 0 else advance_chapter(chapter)
194191
all_files.append(TocItem(filename=entry, chapter=chapter))
192+
else:
193+
chapter = chapter if i == 0 else advance_chapter(chapter)
194+
all_files += list_files(entry, chapter)
195195

196196
return all_files
197197

0 commit comments

Comments
 (0)