From e48590d66cedd1f97e6245c4b112dee6f7b62c81 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Sat, 24 Mar 2018 15:21:44 -0700 Subject: [PATCH] Refactor out unpaper-specific tests --- tests/test_main.py | 21 --------------- tests/test_unpaper.py | 62 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 21 deletions(-) create mode 100644 tests/test_unpaper.py diff --git a/tests/test_main.py b/tests/test_main.py index 8e747439..1d1e21ec 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -124,11 +124,6 @@ def test_deskew(spoof_tesseract_noop, resources, outdir): assert -0.5 < skew_angle < 0.5, "Deskewing failed" -def test_clean(spoof_tesseract_noop, resources, outpdf): - check_ocrmypdf(resources / 'skew.pdf', outpdf, '-c', - env=spoof_tesseract_noop) - - def test_remove_background(spoof_tesseract_noop, resources, outdir): from PIL import Image @@ -551,22 +546,6 @@ def test_tesseract_image_too_big(renderer, spoof_tesseract_big_image_error, env=spoof_tesseract_big_image_error) -@pytest.mark.skipif(True, reason="need new implementation") -def test_no_unpaper(resources, no_outpdf): - env = os.environ.copy() - env['OCRMYPDF_UNPAPER'] = os.path.abspath('./spoof/no_unpaper_here.py') - p, out, err = run_ocrmypdf( - resources / 'c02-22.pdf', no_outpdf, '--clean', env=env) - assert p.returncode == ExitCode.missing_dependency - - -def test_old_unpaper(spoof_unpaper_oldversion, resources, no_outpdf): - p, out, err = run_ocrmypdf( - resources / 'c02-22.pdf', no_outpdf, '--clean', - env=spoof_unpaper_oldversion) - assert p.returncode == ExitCode.missing_dependency - - def test_algo4(resources, no_outpdf): p, _, _ = run_ocrmypdf(resources / 'encrypted_algo4.pdf', no_outpdf) assert p.returncode == ExitCode.encrypted_pdf diff --git a/tests/test_unpaper.py b/tests/test_unpaper.py new file mode 100644 index 00000000..1d3d19ce --- /dev/null +++ b/tests/test_unpaper.py @@ -0,0 +1,62 @@ +# © 2015-17 James R. Barlow: github.com/jbarlow83 +# +# This file is part of OCRmyPDF. +# +# OCRmyPDF is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OCRmyPDF is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OCRmyPDF. If not, see . + +from subprocess import Popen, PIPE, check_output, check_call, DEVNULL +from pathlib import Path +import os +import shutil +import resource +import pytest +from ocrmypdf.pdfinfo import PdfInfo, Colorspace, Encoding +import PyPDF2 as pypdf +from ocrmypdf.exceptions import ExitCode +from ocrmypdf import leptonica +from ocrmypdf.pdfa import file_claims_pdfa +from ocrmypdf.exec import ghostscript, tesseract, qpdf +import logging +from math import isclose + +import PIL + +# pytest.helpers is dynamic +# pylint: disable=no-member +# pylint: disable=w0612 + +check_ocrmypdf = pytest.helpers.check_ocrmypdf +run_ocrmypdf = pytest.helpers.run_ocrmypdf +spoof = pytest.helpers.spoof + + +@pytest.mark.skipif(True, + reason="needs new fixture implementation") +def test_no_unpaper(resources, no_outpdf): + # + p, out, err = run_ocrmypdf( + resources / 'c02-22.pdf', no_outpdf, '--clean', env=env) + assert p.returncode == ExitCode.missing_dependency + + +def test_old_unpaper(spoof_unpaper_oldversion, resources, no_outpdf): + p, out, err = run_ocrmypdf( + resources / 'c02-22.pdf', no_outpdf, '--clean', + env=spoof_unpaper_oldversion) + assert p.returncode == ExitCode.missing_dependency + + +def test_clean(spoof_tesseract_noop, resources, outpdf): + check_ocrmypdf(resources / 'skew.pdf', outpdf, '-c', + env=spoof_tesseract_noop) \ No newline at end of file