diff --git a/tests/conftest.py b/tests/conftest.py index 19679fdf..8ce8f5fb 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -18,6 +18,7 @@ import os import platform import sys +from contextlib import contextmanager from pathlib import Path from subprocess import PIPE, run @@ -115,6 +116,22 @@ def spoof(tmpdir_factory, **kwargs): return env +@pytest.helpers.register +@contextmanager +def os_environ(new_env): + old_env = os.environ.copy() + + for k, v in new_env.items(): + os.environ[k] = v + yield + new_keys = set(os.environ.copy()) - set(old_env) + for k in new_keys: + del os.environ[k] + for k in old_env: + os.environ[k] = old_env[k] + assert os.environ.copy() == old_env + + @pytest.fixture(scope='session') def spoof_tesseract_noop(tmpdir_factory): return spoof(tmpdir_factory, tesseract='tesseract_noop.py') diff --git a/tests/test_weave.py b/tests/test_weave.py index 06fa2a0a..5c72a8fc 100644 --- a/tests/test_weave.py +++ b/tests/test_weave.py @@ -19,9 +19,10 @@ import os import pytest +from ocrmypdf import ocrmypdf import pikepdf -check_ocrmypdf = pytest.helpers.check_ocrmypdf +os_environ = pytest.helpers.os_environ def test_no_glyphless_weave(resources, outdir): @@ -34,26 +35,16 @@ def test_no_glyphless_weave(resources, outdir): env = os.environ.copy() env['_OCRMYPDF_MAX_REPLACE_PAGES'] = '2' - check_ocrmypdf( - outdir / 'test.pdf', - outdir / 'out.pdf', - '--deskew', - '--tesseract-timeout', - '0', - env=env, - ) + with os_environ(env): + ocrmypdf( + outdir / 'test.pdf', outdir / 'out.pdf', deskew=True, tesseract_timeout=0 + ) @pytest.helpers.needs_pdfminer def test_links(resources, outpdf): - check_ocrmypdf( - resources / 'link.pdf', - outpdf, - '--redo-ocr', - '--oversample', - '200', - '--output-type', - 'pdf', + ocrmypdf( + resources / 'link.pdf', outpdf, redo_ocr=True, oversample=200, output_type='pdf' ) pdf = pikepdf.open(outpdf) p1 = pdf.pages[0]