diff options
author | James R. Barlow <jim@purplerock.ca> | 2019-02-11 16:24:23 -0800 |
---|---|---|
committer | James R. Barlow <jim@purplerock.ca> | 2019-02-11 16:24:23 -0800 |
commit | 7a060cbb27a0d586db03184d23241eff5005ff57 (patch) | |
tree | 28a4d84276eefb30f41374e2bff8056722adb4c6 /tests | |
parent | 9cf2f636e19af661237b89ecff4745c03464f952 (diff) |
Support updating the pdf:PDFVersion field in XMP metadata
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_metadata.py | 31 |
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' |