Convert many run_ocrmypdf -> run_ocrmypdf_api
This commit is contained in:
+33
-31
@@ -16,7 +16,7 @@ from PIL import Image
|
||||
|
||||
import ocrmypdf
|
||||
from ocrmypdf._exec import tesseract
|
||||
from ocrmypdf.exceptions import ExitCode, MissingDependencyError
|
||||
from ocrmypdf.exceptions import ExitCode, MissingDependencyError, OutputFileAccessError
|
||||
from ocrmypdf.pdfa import file_claims_pdfa
|
||||
from ocrmypdf.pdfinfo import Colorspace, Encoding, PdfInfo
|
||||
from ocrmypdf.subprocess import get_version
|
||||
@@ -239,8 +239,8 @@ def test_german(resources, outdir):
|
||||
|
||||
|
||||
def test_klingon(resources, outpdf):
|
||||
p = run_ocrmypdf(resources / 'francais.pdf', outpdf, '-l', 'klz')
|
||||
assert p.returncode == ExitCode.missing_dependency
|
||||
with pytest.raises(MissingDependencyError):
|
||||
run_ocrmypdf_api(resources / 'francais.pdf', outpdf, '-l', 'klz')
|
||||
|
||||
|
||||
def test_missing_docinfo(resources, outpdf):
|
||||
@@ -345,8 +345,8 @@ def test_tesseract_thresholding_invalid(value, resources, no_outpdf):
|
||||
|
||||
|
||||
@pytest.mark.parametrize('renderer', RENDERERS)
|
||||
def test_tesseract_crash(renderer, resources, no_outpdf):
|
||||
p = run_ocrmypdf(
|
||||
def test_tesseract_crash(renderer, resources, no_outpdf, caplog):
|
||||
exitcode = run_ocrmypdf_api(
|
||||
resources / 'ccitt.pdf',
|
||||
no_outpdf,
|
||||
'-v',
|
||||
@@ -356,24 +356,22 @@ def test_tesseract_crash(renderer, resources, no_outpdf):
|
||||
'--plugin',
|
||||
'tests/plugins/tesseract_crash.py',
|
||||
)
|
||||
assert p.returncode == ExitCode.child_process_error
|
||||
assert exitcode == ExitCode.child_process_error
|
||||
assert not no_outpdf.exists()
|
||||
assert "SubprocessOutputError" in p.stderr
|
||||
assert "SubprocessOutputError" in caplog.text
|
||||
|
||||
|
||||
def test_tesseract_crash_autorotate(resources, no_outpdf):
|
||||
p = run_ocrmypdf(
|
||||
def test_tesseract_crash_autorotate(resources, no_outpdf, caplog):
|
||||
exitcode = run_ocrmypdf_api(
|
||||
resources / 'ccitt.pdf',
|
||||
no_outpdf,
|
||||
'-r',
|
||||
'--plugin',
|
||||
'tests/plugins/tesseract_crash.py',
|
||||
)
|
||||
assert p.returncode == ExitCode.child_process_error
|
||||
assert exitcode == ExitCode.child_process_error
|
||||
assert not no_outpdf.exists()
|
||||
assert "uncaught exception" in p.stderr
|
||||
print(p.stdout)
|
||||
print(p.stderr)
|
||||
assert "uncaught exception" in caplog.text
|
||||
|
||||
|
||||
@pytest.mark.parametrize('renderer', RENDERERS)
|
||||
@@ -482,13 +480,13 @@ def protected_file(outdir):
|
||||
os.name == 'nt' or os.geteuid() == 0, reason="root can write to anything"
|
||||
)
|
||||
def test_destination_not_writable(resources, protected_file):
|
||||
p = run_ocrmypdf(
|
||||
exitcode = run_ocrmypdf_api(
|
||||
resources / 'jbig2.pdf',
|
||||
protected_file,
|
||||
'--plugin',
|
||||
'tests/plugins/tesseract_noop.py',
|
||||
)
|
||||
assert p.returncode == ExitCode.file_access_error, "Expected error"
|
||||
assert exitcode == ExitCode.file_access_error
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -791,15 +789,18 @@ def test_pdfa_n(pdfa_level, resources, outpdf):
|
||||
assert pdfa_info['conformance'] == f'PDF/A-{pdfa_level}B'
|
||||
|
||||
|
||||
def test_decompression_bomb_error(resources, outpdf):
|
||||
p = run_ocrmypdf(resources / 'hugemono.pdf', outpdf)
|
||||
assert 'decompression bomb' in p.stderr and '--max-image-mpixels' in p.stderr
|
||||
def test_decompression_bomb_error(resources, outpdf, caplog):
|
||||
run_ocrmypdf_api(resources / 'hugemono.pdf', outpdf)
|
||||
assert 'decompression bomb' in caplog.text
|
||||
assert 'max-image-mpixels' in caplog.text
|
||||
|
||||
|
||||
@pytest.mark.slow
|
||||
def test_decompression_bomb_succeeds(resources, outpdf):
|
||||
p = run_ocrmypdf(resources / 'hugemono.pdf', outpdf, '--max-image-mpixels', '2000')
|
||||
assert p.returncode == 0
|
||||
exitcode = run_ocrmypdf_api(
|
||||
resources / 'hugemono.pdf', outpdf, '--max-image-mpixels', '2000'
|
||||
)
|
||||
assert exitcode == 0
|
||||
|
||||
|
||||
def test_text_curves(resources, outpdf):
|
||||
@@ -829,37 +830,37 @@ def test_text_curves_force(resources, outpdf):
|
||||
assert len(info.pages[0].images) != 0, "force did not rasterize"
|
||||
|
||||
|
||||
def test_output_is_dir(resources, outdir):
|
||||
p = run_ocrmypdf(
|
||||
def test_output_is_dir(resources, outdir, caplog):
|
||||
exitcode = run_ocrmypdf_api(
|
||||
resources / 'trivial.pdf',
|
||||
outdir,
|
||||
'--force-ocr',
|
||||
'--plugin',
|
||||
'tests/plugins/tesseract_noop.py',
|
||||
)
|
||||
assert p.returncode == ExitCode.file_access_error
|
||||
assert 'is not a writable file' in p.stderr
|
||||
assert exitcode == ExitCode.file_access_error
|
||||
assert 'is not a writable file' in caplog.text
|
||||
|
||||
|
||||
@pytest.mark.skipif(os.name == 'nt', reason="symlink needs admin permissions")
|
||||
def test_output_is_symlink(resources, outdir):
|
||||
sym = Path(outdir / 'this_is_a_symlink')
|
||||
sym.symlink_to(outdir / 'out.pdf')
|
||||
p = run_ocrmypdf(
|
||||
exitcode = run_ocrmypdf_api(
|
||||
resources / 'trivial.pdf',
|
||||
sym,
|
||||
'--force-ocr',
|
||||
'--plugin',
|
||||
'tests/plugins/tesseract_noop.py',
|
||||
)
|
||||
assert p.returncode == ExitCode.ok, p.stderr
|
||||
assert exitcode == ExitCode.ok
|
||||
assert (outdir / 'out.pdf').stat().st_size > 0, 'target file not created'
|
||||
|
||||
|
||||
def test_livecycle(resources, no_outpdf):
|
||||
p = run_ocrmypdf(resources / 'livecycle.pdf', no_outpdf)
|
||||
def test_livecycle(resources, no_outpdf, caplog):
|
||||
exitcode = run_ocrmypdf_api(resources / 'livecycle.pdf', no_outpdf)
|
||||
|
||||
assert p.returncode == ExitCode.input_file, p.stderr
|
||||
assert exitcode == ExitCode.input_file, caplog.text
|
||||
|
||||
|
||||
def test_version_check():
|
||||
@@ -928,7 +929,7 @@ def test_outputtype_none_bad_setup(resources, outpdf):
|
||||
|
||||
|
||||
def test_outputtype_none(resources, outtxt):
|
||||
p = run_ocrmypdf(
|
||||
exitcode = run_ocrmypdf_api(
|
||||
resources / 'trivial.pdf',
|
||||
'-',
|
||||
'--output-type=none',
|
||||
@@ -937,7 +938,8 @@ def test_outputtype_none(resources, outtxt):
|
||||
'--plugin',
|
||||
'tests/plugins/tesseract_noop.py',
|
||||
)
|
||||
assert p.returncode == ExitCode.ok
|
||||
assert exitcode == ExitCode.ok
|
||||
assert outtxt.exists()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
||||
Reference in New Issue
Block a user