From 2744dafb7413f3af6a9ee2ec974d4a059f90bfcf Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Wed, 5 Aug 2015 17:09:38 -0700 Subject: [PATCH] New test case: ensure metadata is preserved from input to output --- tests/resources/graph.pdf | Bin 292470 -> 296322 bytes tests/test_main.py | 26 +++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/tests/resources/graph.pdf b/tests/resources/graph.pdf index 00db54d32d5c9b37a0b85b3920f5ca6af3c76d75..9b48e60802b7fb777c2b7ebd964179972a0e9c4e 100644 GIT binary patch delta 3900 zcmezNMzE<{sG)_ig{g&k3rks9y`h4ELVi*fuZ@kqZ)!^BXQ!6bD-n*TA>HIW;5G zqpB!1xXLdixhgx^GDXSWj?1RPsv@@_H?<^Dp&~aYuh^=>Rw*$hKPlBJuhApiP;kyKN>wn`Gto^pFfdgxx6m^*F*i0c(@`)os5dmyH?Yt*GS)RT zwlV-A1t?Im<5EyiuqjGOvkG!?gW6Y=l4h%vQBqQ1rLSLJUanVete0Puu5V~*X{m2u zq;F)TTa=QfTU?n}l31aeSF8*%1ZIv)YH@N=WWVoJ!(xM!&+ftJCQ*%;tQ}arS^$qn5 z(e%|r!!ftO*B7oAt9`k-`f%TXJXDceVC7ttnpl$Rl30>zXJlY#s%v1bYh)B+U}$A* zVr6JyqmQNr;Y}NmjBkEQW_?;El6DJS1Je*gGb>XID^oLF19K|_1Bf9YrBIdVhCmZ7 zQKlfPg_u(h3U-^6WUI9NqTIw1yTpQmoXq4zP!#DGq@>yCBcvc2VCqXUOL9`dNdzPU z#^AK#m{Wo(3JNPwWangpV%91rF)!U#sX{j;H7&6;r=(uVE-1AiCovfuLkjt63QEbK zK+Vk0%Ph`SQYgk3p1F(NSdJrLwtsmiNPL+hz7a1*>TzEg9{%}K?IfprwaT8IQ`*Qf=?FeGJHz# z%MoQi#kSyf1CsqTv;|>5x+O^VBNS20LbnCCft1)!ye*X2PYqiL+fQ3tp!Q?2gp%-w znu<6)(ttO&H1)yF?acf%%)c4I#L6)*GFf}wYwE(xI z)eQ{PHT6S4jaCih24_9-Ely2D$FHI&HI3Im!HCxY4iwBxO^rZu0ld*-F(D}X{NNZ->X+Q!+)$i&3J#lXeFz{$ki#n{o!%-Gq{z}U>($i=|O+|iDJ t3N3R-yIB2zqSP`4BTFMA69YRt-r|zPq7twdjV#R!%q@9URbBnvcma&g4h;YR delta 17 YcmZqb7W(!^u%U&qg{g&k3rkrU07CHw$p8QV diff --git a/tests/test_main.py b/tests/test_main.py index 8c4a68de..b6c8ca8f 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -10,6 +10,7 @@ import sys from unittest.mock import patch, create_autospec import pytest from ocrmypdf.pageinfo import pdf_get_all_pageinfo +import PyPDF2 as pypdf if sys.version_info.major < 3: @@ -39,9 +40,17 @@ def run_ocrmypdf_sh(input_file, output_file, *args): return sh, out, err +def _make_input(input_basename): + return os.path.join(TEST_RESOURCES, input_basename) + + +def _make_output(output_basename): + return os.path.join(TEST_OUTPUT, output_basename) + + def check_ocrmypdf(input_basename, output_basename, *args): - input_file = os.path.join(TEST_RESOURCES, input_basename) - output_file = os.path.join(TEST_OUTPUT, output_basename) + input_file = _make_input(input_basename) + output_file = _make_output(output_basename) sh, _, err = run_ocrmypdf_sh(input_file, output_file, *args) assert sh.returncode == 0, err @@ -64,7 +73,7 @@ def test_deskew(): import logging log = logging.getLogger() - deskewed_png = os.path.join(TEST_OUTPUT, 'deskewed.png') + deskewed_png = _make_output('deskewed.png') rasterize_pdf( deskewed_pdf, @@ -87,6 +96,17 @@ def test_clean(): check_ocrmypdf('skew.pdf', 'test_clean.pdf', '-c') +def test_preserve_metadata(): + pdf_before = pypdf.PdfFileReader(_make_input('graph.pdf')) + + output = check_ocrmypdf('graph.pdf', 'test_metadata_preserve.pdf') + + pdf_after = pypdf.PdfFileReader(output) + + for key in ('/Title', '/Author'): + assert pdf_before.documentInfo[key] == pdf_after.documentInfo[key] + + def test_override_metadata(): german = 'Du siehst den Wald vor lauter Bäumen nicht.' chinese = '孔子'