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 zcmchaOK;;g5P;FgDS!{{FCbJbHYqBTq9p49TMMt%paIrxkObI8iyml+ayl-|4M~{-FZB^;}X`Y}vK*aFPlMOb=(~n<2--%s+p9@#}A2{&Mrl&8Ih?{r>so zWvKuJ($U9Ow+n}q5uY#u3@$r?$7DZ2^z{1sGw=GsvwZ1|v)7&3vp9=+oM0A5Nny`=65*jxo3Di!N}y6<7d@#jHo%AB zF&Lyd1$tYPJ%n^%m~BNfRNVOnU{op?@{qAAE2@peAE+P6+2gBj?g#dXdsy@Mx1My) zSY|^wole_RwVmc;s92T-5r!DcTthCd5=LfnQhYUca_h&Xg_nmJ3)2J$zhsn_6V{U? zL0UX@W^uM4B}Kc+vhAfYoRJJFZ3H(N`QE}No8(ayo9{sy(U>Nz;C9NIUAdqQhYQ<{ zyf}u7YY{y+m!|IAPbrSQ>w9*P<}qOo$+9T)h`1t{`9T*hw;EtB zWFd=aRU(Uvt7@emu~n(?FD^R@MGe^zNya^CCi^rXlZcg)b3(I-c-0MoGysw(4wdu6 zB9_23n5JbTx)5hxKqp$^ulfG+%Qe{JtgQRp~Md z=Y4n)#?%kVT_LPGs6wdnTA}eOD6`?vc2jR63iQZzCX>*&4MaR$v#@LiK9Wa>+D7sLyX?;RxtBZ)_E{aQM$qWDJD%s;_z_n}G?(&M1b;oj#rx?$r?;q*)kRf*tD?tzTc-RNtA_4__)n%Z zfNRSJ{{<;a=sKjqUn)I$wNBaY@G1OCAYml9}gh! zlABv5(v^;GR-N=~gkB%OGtso}Hyh6K;T`9}a`2nwG-x4!TWIlsj;^aZ2wHnWge|NY z2voZuY3&)cE|=?SLypQyS+^8zsmyW`Ml=^A>1lXPfdx;}lmRiRp1`9dNP##dzI1=; z4lvd<NQYp(J$JkIGQ;IUy1@g#ZEn6oNHY;}-f MwO+mY_J_mPzl_cf4FCWD 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 = '孔子'