From 7a060cbb27a0d586db03184d23241eff5005ff57 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Mon, 11 Feb 2019 16:24:23 -0800 Subject: Support updating the pdf:PDFVersion field in XMP metadata --- tests/test_metadata.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'tests/test_metadata.py') 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' -- cgit v1.2.3