11import os
22import sys
33from io import BytesIO
4+ from pathlib import Path
45
56import pytest
67
1011
1112from . import get_pdf_from_url
1213
13- TESTS_ROOT = os . path . abspath ( os . path . dirname ( __file__ ) )
14- PROJECT_ROOT = os . path . dirname ( TESTS_ROOT )
15- RESOURCE_ROOT = os . path . join ( PROJECT_ROOT , "resources" )
14+ TESTS_ROOT = Path ( __file__ ). parent . resolve ( )
15+ PROJECT_ROOT = TESTS_ROOT . parent
16+ RESOURCE_ROOT = PROJECT_ROOT / "resources"
1617
17- sys .path .append (PROJECT_ROOT )
18+ sys .path .append (str ( PROJECT_ROOT ) )
1819
1920
2021def test_merge ():
21- pdf_path = os . path . join ( RESOURCE_ROOT , "crazyones.pdf" )
22- outline = os . path . join ( RESOURCE_ROOT , "pdflatex-outline.pdf" )
23- pdf_forms = os . path . join ( RESOURCE_ROOT , "pdflatex-forms.pdf" )
24- pdf_pw = os . path . join ( RESOURCE_ROOT , "libreoffice-writer-password.pdf" )
22+ pdf_path = RESOURCE_ROOT / "crazyones.pdf"
23+ outline = RESOURCE_ROOT / "pdflatex-outline.pdf"
24+ pdf_forms = RESOURCE_ROOT / "pdflatex-forms.pdf"
25+ pdf_pw = RESOURCE_ROOT / "libreoffice-writer-password.pdf"
2526
2627 merger = PyPDF2 .PdfMerger ()
2728
@@ -122,7 +123,7 @@ def test_merge():
122123
123124def test_merge_page_exception ():
124125 merger = PyPDF2 .PdfMerger ()
125- pdf_path = os . path . join ( RESOURCE_ROOT , "crazyones.pdf" )
126+ pdf_path = RESOURCE_ROOT / "crazyones.pdf"
126127 with pytest .raises (TypeError ) as exc :
127128 merger .merge (0 , pdf_path , pages = "a:b" )
128129 assert exc .value .args [0 ] == '"pages" must be a tuple of (start, stop[, step])'
@@ -131,14 +132,14 @@ def test_merge_page_exception():
131132
132133def test_merge_page_tuple ():
133134 merger = PyPDF2 .PdfMerger ()
134- pdf_path = os . path . join ( RESOURCE_ROOT , "crazyones.pdf" )
135+ pdf_path = RESOURCE_ROOT / "crazyones.pdf"
135136 merger .merge (0 , pdf_path , pages = (0 , 1 ))
136137 merger .close ()
137138
138139
139140def test_merge_write_closed_fh ():
140141 merger = PyPDF2 .PdfMerger ()
141- pdf_path = os . path . join ( RESOURCE_ROOT , "crazyones.pdf" )
142+ pdf_path = RESOURCE_ROOT / "crazyones.pdf"
142143 merger .append (pdf_path )
143144
144145 err_closed = "close() was called and thus the writer cannot be used anymore"
@@ -313,9 +314,7 @@ def test_iss1145():
313314
314315
315316def test_deprecate_bookmark_decorator_warning ():
316- reader = PdfReader (
317- os .path .join (RESOURCE_ROOT , "outlines-with-invalid-destinations.pdf" )
318- )
317+ reader = PdfReader (RESOURCE_ROOT / "outlines-with-invalid-destinations.pdf" )
319318 merger = PdfMerger ()
320319 with pytest .warns (
321320 UserWarning ,
@@ -326,9 +325,7 @@ def test_deprecate_bookmark_decorator_warning():
326325
327326@pytest .mark .filterwarnings ("ignore::UserWarning" )
328327def test_deprecate_bookmark_decorator_output ():
329- reader = PdfReader (
330- os .path .join (RESOURCE_ROOT , "outlines-with-invalid-destinations.pdf" )
331- )
328+ reader = PdfReader (RESOURCE_ROOT / "outlines-with-invalid-destinations.pdf" )
332329 merger = PdfMerger ()
333330 merger .merge (0 , reader , import_bookmarks = True )
334331 first_oi_title = 'Valid Destination: Action /GoTo Named Destination "section.1"'
0 commit comments