Skip to content

Commit bce300e

Browse files
committed
TST: Remove files after tests ran
Use the tmp_path fixture in cases where we're not interested to manually check the resulting PDF file
1 parent 84460f5 commit bce300e

File tree

4 files changed

+54
-62
lines changed

4 files changed

+54
-62
lines changed

tests/bench.py

+4-7
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def test_page_operations(benchmark):
5050
benchmark(page_ops, "libreoffice-writer-password.pdf", "openpassword")
5151

5252

53-
def merge():
53+
def merge(tmp_path):
5454
pdf_path = RESOURCE_ROOT / "crazyones.pdf"
5555
outline = RESOURCE_ROOT / "pdflatex-outline.pdf"
5656
pdf_forms = RESOURCE_ROOT / "pdflatex-forms.pdf"
@@ -83,12 +83,12 @@ def merge():
8383
merger.set_page_layout("/SinglePage")
8484
merger.set_page_mode("/UseThumbs")
8585

86-
tmp_path = "dont_commit_merged.pdf"
87-
merger.write(tmp_path)
86+
write_path = tmp_path / "dont_commit_merged.pdf"
87+
merger.write(write_path)
8888
merger.close()
8989

9090
# Check if outline is correct
91-
reader = PyPDF2.PdfReader(tmp_path)
91+
reader = PyPDF2.PdfReader(write_path)
9292
assert [
9393
el.title for el in reader._get_outline() if isinstance(el, Destination)
9494
] == [
@@ -105,9 +105,6 @@ def merge():
105105
"True",
106106
]
107107

108-
# Clean up
109-
os.remove(tmp_path)
110-
111108

112109
def test_merge(benchmark):
113110
"""

tests/test_basic_features.py

-54
This file was deleted.

tests/test_workflows.py

+43
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,49 @@
2929
sys.path.append(str(PROJECT_ROOT))
3030

3131

32+
def test_basic_features(tmp_path):
33+
pdf_path = RESOURCE_ROOT / "crazyones.pdf"
34+
reader = PdfReader(pdf_path)
35+
writer = PdfWriter()
36+
37+
assert len(reader.pages) == 1
38+
39+
# add page 1 from input1 to output document, unchanged
40+
writer.add_page(reader.pages[0])
41+
42+
# add page 2 from input1, but rotated clockwise 90 degrees
43+
writer.add_page(reader.pages[0].rotate(90))
44+
45+
# add page 3 from input1, but first add a watermark from another PDF:
46+
page3 = reader.pages[0]
47+
watermark_pdf = pdf_path
48+
watermark = PdfReader(watermark_pdf)
49+
page3.merge_page(watermark.pages[0])
50+
writer.add_page(page3)
51+
52+
# add page 4 from input1, but crop it to half size:
53+
page4 = reader.pages[0]
54+
page4.mediabox.upper_right = (
55+
page4.mediabox.right / 2,
56+
page4.mediabox.top / 2,
57+
)
58+
writer.add_page(page4)
59+
60+
# add some Javascript to launch the print window on opening this PDF.
61+
# the password dialog may prevent the print dialog from being shown,
62+
# comment the the encription lines, if that's the case, to try this out
63+
writer.add_js("this.print({bUI:true,bSilent:false,bShrinkToFit:true});")
64+
65+
# encrypt your new PDF and add a password
66+
password = "secret"
67+
writer.encrypt(password)
68+
69+
# finally, write "output" to PyPDF2-output.pdf
70+
write_path = tmp_path / "PyPDF2-output.pdf"
71+
with open(write_path, "wb") as output_stream:
72+
writer.write(output_stream)
73+
74+
3275
def test_dropdown_items():
3376
inputfile = RESOURCE_ROOT / "libreoffice-form.pdf"
3477
reader = PdfReader(inputfile)

tests/test_writer.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,8 @@ def test_fill_form():
384384
with open(tmp_filename, "wb") as output_stream:
385385
writer.write(output_stream)
386386

387+
os.remove(tmp_filename) # cleanup
388+
387389

388390
@pytest.mark.parametrize(
389391
("use_128bit", "user_pwd", "owner_pwd"),
@@ -595,14 +597,18 @@ def test_io_streams():
595597

596598

597599
def test_regression_issue670():
600+
tmp_file = "dont_commit_issue670.pdf"
598601
filepath = RESOURCE_ROOT / "crazyones.pdf"
599602
reader = PdfReader(filepath, strict=False)
600603
for _ in range(2):
601604
writer = PdfWriter()
602605
writer.add_page(reader.pages[0])
603-
with open("dont_commit_issue670.pdf", "wb") as f_pdf:
606+
with open(tmp_file, "wb") as f_pdf:
604607
writer.write(f_pdf)
605608

609+
# cleanup
610+
os.remove(tmp_file)
611+
606612

607613
def test_issue301():
608614
"""

0 commit comments

Comments
 (0)