summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJames R. Barlow <jim@purplerock.ca>2019-02-11 16:24:23 -0800
committerJames R. Barlow <jim@purplerock.ca>2019-02-11 16:24:23 -0800
commit7a060cbb27a0d586db03184d23241eff5005ff57 (patch)
tree28a4d84276eefb30f41374e2bff8056722adb4c6 /tests
parent9cf2f636e19af661237b89ecff4745c03464f952 (diff)
Support updating the pdf:PDFVersion field in XMP metadata
Diffstat (limited to 'tests')
-rw-r--r--tests/test_metadata.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/test_metadata.py b/tests/test_metadata.py
index a359938..5fd8111 100644
--- a/tests/test_metadata.py
+++ b/tests/test_metadata.py
@@ -390,3 +390,34 @@ def test_no_x_xmpmeta(trivial):
assert xmp._get_rdf_root() is not None
xmp['pdfaid:part'] = '2'
assert xmp['pdfaid:part'] == '2'
+
+
+def test_pdf_version_update(graph, outdir):
+ def get_xmp_version(filename):
+ meta = pikepdf.open(filename).open_metadata()
+ xmp = XMPMeta(xmp_str=str(meta))
+ return xmp.get_property('http://ns.adobe.com/pdf/1.3/', 'PDFVersion')
+
+ # We don't update PDFVersion unless it is present, even if we change the PDF version
+ graph.save(
+ outdir / 'empty_xmp_pdfversion.pdf',
+ force_version='1.7',
+ fix_metadata_version=True,
+ )
+ assert get_xmp_version(outdir / 'empty_xmp_pdfversion.pdf') == ''
+
+ # Add PDFVersion field for remaining tests
+ with graph.open_metadata() as m:
+ m['pdf:PDFVersion'] = graph.pdf_version
+
+ # Confirm we don't update the field when the flag is false
+ graph.save(
+ outdir / 'inconsistent_version.pdf',
+ force_version='1.6',
+ fix_metadata_version=False,
+ )
+ assert get_xmp_version(outdir / 'inconsistent_version.pdf') == '1.3'
+
+ # Confirm we update if present
+ graph.save(outdir / 'consistent_version.pdf', force_version='1.5')
+ assert get_xmp_version(outdir / 'consistent_version.pdf') == '1.5'