Skip to content

Commit a9758ae

Browse files
authored
MAINT: Improve test coverage (#2796)
1 parent 46c89dd commit a9758ae

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

tests/test_writer.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2188,6 +2188,10 @@ def test_replace_object():
21882188
reader._replace_object(reader.pages[0].indirect_reference, reader.pages[0])
21892189
pg = PageObject.create_blank_page(writer, 1000, 1000)
21902190
reader._replace_object(reader.pages[0].indirect_reference, pg)
2191+
pg = PageObject.create_blank_page(None, 1000, 1000)
2192+
pg[NameObject("/Contents")] = writer.pages[0]["/Contents"]
2193+
writer._add_object(pg)
2194+
writer.add_page(pg)
21912195

21922196

21932197
def test_mime_jupyter():
@@ -2300,3 +2304,9 @@ def test_matrix_entry_in_field_annots():
23002304
auto_regenerate=False,
23012305
)
23022306
assert "/Matrix" in writer.pages[0]["/Annots"][5].get_object()["/AP"]["/N"]
2307+
2308+
2309+
def test_set_need_appearances_writer():
2310+
"""Minimal test for coverage"""
2311+
writer = PdfWriter()
2312+
writer.set_need_appearances_writer()

tests/test_xmp.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import pypdf.generic
99
import pypdf.xmp
10-
from pypdf import PdfReader
10+
from pypdf import PdfReader, PdfWriter
1111
from pypdf.errors import PdfReadError
1212

1313
from . import get_data_from_url
@@ -42,6 +42,35 @@ def test_read_xmp_metadata_samples(src):
4242
}
4343

4444

45+
def test_writer_xmp_metadata_samples():
46+
writer = PdfWriter(SAMPLE_ROOT / "020-xmp/output_with_metadata_pymupdf.pdf")
47+
xmp = writer.xmp_metadata
48+
assert xmp
49+
assert xmp.dc_contributor == []
50+
assert xmp.dc_creator == ["John Doe"]
51+
assert xmp.dc_source == "Martin Thoma" # attribute node
52+
assert xmp.dc_description == {"x-default": "This is a text"}
53+
assert xmp.dc_date == [datetime(1990, 4, 28, 0, 0)]
54+
assert xmp.dc_title == {"x-default": "Sample PDF with XMP Metadata"}
55+
assert xmp.custom_properties == {
56+
"Style": "FooBarStyle",
57+
"other": "worlds",
58+
"⏰": "time",
59+
}
60+
co = pypdf.generic.ContentStream(None, None)
61+
co.set_data(
62+
xmp.stream.get_data().replace(
63+
b'dc:source="Martin Thoma"', b'dc:source="Pubpub-Zz"'
64+
)
65+
)
66+
writer.xmp_metadata = pypdf.xmp.XmpInformation(co)
67+
b = BytesIO()
68+
writer.write(b)
69+
reader = PdfReader(b)
70+
xmp2 = reader.xmp_metadata
71+
assert xmp2.dc_source == "Pubpub-Zz"
72+
73+
4574
@pytest.mark.parametrize(
4675
("src", "has_xmp"),
4776
[

0 commit comments

Comments
 (0)