Source: ocrmypdf Version: 6.2.2-1 User: debian...@lists.debian.org Usertags: regression
Dear Sean, With the upload of version 6.2.2-1 your package started to fail its autopgktest in testing, however it passes in unstable. I copied the output below. Could you please investigate? I noticed in the changelog/BTS that you need python3-ruffus 2.7 but I don't see that in the (build-) dependencies, did you loosen it too much? Currently this regression is delaying the migration to testing by 13 days. Paul https://ci.debian.net/data/autopkgtest/testing/amd64/o/ocrmypdf/607994/log.gz autopkgtest [04:34:20]: test test-suite: [----------------------- ============================= test session starts ============================== platform linux -- Python 3.6.6, pytest-3.6.2, py-1.5.3, pluggy-0.6.0 rootdir: /tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src, inifile: setup.cfg plugins: timeout-1.2.1, helpers-namespace-2017.11.11, cov-2.5.1 collected 168 items tests/test_hocrtransform.py . [ 0%] tests/test_lept.py . [ 1%] tests/test_main.py ...............................................F.F... [ 32%] ..FFF..FFFF...F.........s............FFF......FF.................s..... [ 75%] tests/test_metadata.py .....xxxx.... [ 82%] tests/test_multiprocessing.py . [ 83%] tests/test_pageinfo.py ........ [ 88%] tests/test_qpdf.py .....s [ 91%] tests/test_tess3.py sss [ 93%] tests/test_tess4.py ..... [ 96%] tests/test_unpaper.py s.. [ 98%] tests/test_userunit.py F.. [100%] =================================== FAILURES =================================== ____________________________ test_invalid_input_pdf ____________________________ resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_invalid_input_pdf0/no_output.pdf' def test_invalid_input_pdf(resources, no_outpdf): p, out, err = run_ocrmypdf( resources / 'invalid.pdf', no_outpdf) > assert p.returncode == ExitCode.input_file, err E AssertionError: ERROR - /tmp/com.github.ocrmypdf.gl7o6ez6/origin.pdf: not a valid PDF, and could not repair it. E ERROR - Details: WARNING: /tmp/com.github.ocrmypdf.gl7o6ez6/origin.pdf: file is damaged E WARNING: /tmp/com.github.ocrmypdf.gl7o6ez6/origin.pdf: can't find startxref E WARNING: /tmp/com.github.ocrmypdf.gl7o6ez6/origin.pdf: Attempting to reconstruct cross-reference table E /tmp/com.github.ocrmypdf.gl7o6ez6/origin.pdf: unable to find trailer dictionary while recovering damaged file E E Traceback (most recent call last): E File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 901, in run_pipeline E cmdline.run(options) E File "/usr/lib/python3/dist-packages/ruffus/cmdline.py", line 824, in run E **appropriate_options) E File "/usr/lib/python3/dist-packages/ruffus/task.py", line 5938, in pipeline_run E raise job_errors E ruffus.ruffus_exceptions.RethrownJobError: E E E E Original exception: E E Exception #1 E 'ocrmypdf.exceptions.InputFileError' raised in ... E Task = def ocrmypdf.pipeline.repair_and_parse_pdf(...): E Job = [.../origin.pdf -> .../origin.repaired.pdf, <LoggingProxy>, <ocrmypdf.pipeline.JobContext>] E E Traceback (most recent call last): E File "/usr/lib/python3/dist-packages/ocrmypdf/exec/qpdf.py", line 78, in repair E check=True) E File "/usr/lib/python3.6/subprocess.py", line 418, in run E output=stdout, stderr=stderr) E subprocess.CalledProcessError: Command '['qpdf', '/tmp/com.github.ocrmypdf.gl7o6ez6/origin.pdf', '/tmp/com.github.ocrmypdf.gl7o6ez6/origin.repaired.pdf']' returned non-zero exit status 2. E E The above exception was the direct cause of the following exception: E E Traceback (most recent call last): E File "/usr/lib/python3/dist-packages/ruffus/task.py", line 751, in run_pooled_job_without_exceptions E register_cleanup, touch_files_only) E File "/usr/lib/python3/dist-packages/ruffus/task.py", line 567, in job_wrapper_io_files E ret_val = user_defined_work_func(*params) E File "/usr/lib/python3/dist-packages/ocrmypdf/pipeline.py", line 218, in repair_and_parse_pdf E qpdf.repair(input_file, output_file, log) E File "/usr/lib/python3/dist-packages/ocrmypdf/exec/qpdf.py", line 90, in repair E raise InputFileError() from e E ocrmypdf.exceptions.InputFileError E E E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main E "__main__", mod_spec) E File "/usr/lib/python3.6/runpy.py", line 85, in _run_code E exec(code, run_globals) E File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 953, in <module> E sys.exit(run_pipeline()) E File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 905, in run_pipeline E exceptions = e.job_exceptions E AttributeError: 'RethrownJobError' object has no attribute 'job_exceptions' E E assert 1 == <ExitCode.input_file: 2> E + where 1 = <subprocess.Popen object at 0x7f539492bb00>.returncode E + and <ExitCode.input_file: 2> = ExitCode.input_file tests/test_main.py:343: AssertionError _____________________ test_force_ocr_on_pdf_with_no_images _____________________ spoof_tesseract_crash = {'ADTTMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest-lxc.kp73nwdh/do...p73nwdh/downtmp/test-suite-artifacts', 'AUTOPKGTEST_TMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', ...} resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_force_ocr_on_pdf_with_no_0/no_output.pdf' def test_force_ocr_on_pdf_with_no_images(spoof_tesseract_crash, resources, no_outpdf): # As a correctness test, make sure that --force-ocr on a PDF with no # content still triggers tesseract. If tesseract crashes, then it was # called. p, _, err = run_ocrmypdf( resources / 'blank.pdf', no_outpdf, '--force-ocr', env=spoof_tesseract_crash) > assert p.returncode == ExitCode.child_process_error, err E AssertionError: WARNING - 1: page has no images - all vector content will be rasterized at 400 DPI, losing some resolution and likely increasing file size. Use --oversample to adjust the DPI. E INFO - 1: [tesseract] KABOOM! Tesseract failed for some reason E Traceback (most recent call last): E File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 901, in run_pipeline E cmdline.run(options) E File "/usr/lib/python3/dist-packages/ruffus/cmdline.py", line 824, in run E **appropriate_options) E File "/usr/lib/python3/dist-packages/ruffus/task.py", line 5938, in pipeline_run E raise job_errors E ruffus.ruffus_exceptions.RethrownJobError: E E E E Original exception: E E Exception #1 E 'subprocess.CalledProcessError(Command '['tesseract', '-l', 'eng', '-c', 'textonly_pdf=1', '/tmp/com.github.ocrmypdf.9783lyfl/000001.ocr.png', '/tmp/com.github.ocrmypdf.9783lyfl/000001.text', 'pdf', 'txt']' returned non-zero exit status 139.)' raised in ... E Task = def ocrmypdf.pipeline.ocr_tesseract_textonly_pdf(...): E Job = [[.../000001.ocr.oriented.pdf, .../000001.ocr.png] -> [.../000001.text.pdf, .../000001.text.txt], <LoggingProxy>, <ocrmypdf.pipeline.JobContext>] E E Traceback (most recent call last): E File "/usr/lib/python3/dist-packages/ruffus/task.py", line 751, in run_pooled_job_without_exceptions E register_cleanup, touch_files_only) E File "/usr/lib/python3/dist-packages/ruffus/task.py", line 567, in job_wrapper_io_files E ret_val = user_defined_work_func(*params) E File "/usr/lib/python3/dist-packages/ocrmypdf/pipeline.py", line 873, in ocr_tesseract_textonly_pdf E log=log) E File "/usr/lib/python3/dist-packages/ocrmypdf/exec/tesseract.py", line 371, in generate_pdf E raise e from e E File "/usr/lib/python3/dist-packages/ocrmypdf/exec/tesseract.py", line 357, in generate_pdf E timeout=timeout) E File "/usr/lib/python3.6/subprocess.py", line 336, in check_output E **kwargs).stdout E File "/usr/lib/python3.6/subprocess.py", line 418, in run E output=stdout, stderr=stderr) E subprocess.CalledProcessError: Command '['tesseract', '-l', 'eng', '-c', 'textonly_pdf=1', '/tmp/com.github.ocrmypdf.9783lyfl/000001.ocr.png', '/tmp/com.github.ocrmypdf.9783lyfl/000001.text', 'pdf', 'txt']' returned non-zero exit status 139. E E E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main E "__main__", mod_spec) E File "/usr/lib/python3.6/runpy.py", line 85, in _run_code E exec(code, run_globals) E File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 953, in <module> E sys.exit(run_pipeline()) E File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 905, in run_pipeline E exceptions = e.job_exceptions E AttributeError: 'RethrownJobError' object has no attribute 'job_exceptions' E E assert 1 == <ExitCode.child_process_error: 7> E + where 1 = <subprocess.Popen object at 0x7f5394800860>.returncode E + and <ExitCode.child_process_error: 7> = ExitCode.child_process_error tests/test_main.py:360: AssertionError __________________________ test_input_file_not_a_pdf ___________________________ no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_input_file_not_a_pdf0/no_output.pdf' def test_input_file_not_a_pdf(no_outpdf): input_file = __file__ # Try to OCR this file p, out, err = run_ocrmypdf( input_file, no_outpdf) > assert p.returncode == ExitCode.input_file E assert 1 == <ExitCode.input_file: 2> E + where 1 = <subprocess.Popen object at 0x7f5394800c18>.returncode E + and <ExitCode.input_file: 2> = ExitCode.input_file tests/test_main.py:416: AssertionError ____________________________ test_qpdf_repair_fails ____________________________ spoof_qpdf_always_error = {'ADTTMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest-lxc.kp73nwdh/do...p73nwdh/downtmp/test-suite-artifacts', 'AUTOPKGTEST_TMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', ...} resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_qpdf_repair_fails0/no_output.pdf' def test_qpdf_repair_fails(spoof_qpdf_always_error, resources, no_outpdf): p, out, err = run_ocrmypdf( resources / 'c02-22.pdf', no_outpdf, '-v', '1', env=spoof_qpdf_always_error) print(err) > assert p.returncode == ExitCode.input_file E assert 1 == <ExitCode.input_file: 2> E + where 1 = <subprocess.Popen object at 0x7f53946d85c0>.returncode E + and <ExitCode.input_file: 2> = ExitCode.input_file tests/test_main.py:426: AssertionError ----------------------------- Captured stdout call ----------------------------- DEBUG - ocrmypdf 6.2.2 DEBUG - tesseract 4.0.0-beta.1-262-g555f DEBUG - qpdf 7.0.0 DEBUG - PyMuPDF not installed DEBUG - os.symlink(/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources/c02-22.pdf, /tmp/com.github.ocrmypdf.ans58xtp/origin) DEBUG - os.symlink(/tmp/com.github.ocrmypdf.ans58xtp/origin, /tmp/com.github.ocrmypdf.ans58xtp/origin.pdf) DEBUG - Beginning qpdf repair... ERROR - /tmp/com.github.ocrmypdf.ans58xtp/origin.pdf: not a valid PDF, and could not repair it. ERROR - Details: qpdf dummy DEBUG - Original exception: Exception #1 'ocrmypdf.exceptions.InputFileError' raised in ... Task = def ocrmypdf.pipeline.repair_and_parse_pdf(...): Job = [.../origin.pdf -> .../origin.repaired.pdf, <LoggingProxy>, <ocrmypdf.pipeline.JobContext>] Traceback (most recent call last): File "/usr/lib/python3/dist-packages/ocrmypdf/exec/qpdf.py", line 78, in repair check=True) File "/usr/lib/python3.6/subprocess.py", line 418, in run output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['qpdf', '/tmp/com.github.ocrmypdf.ans58xtp/origin.pdf', '/tmp/com.github.ocrmypdf.ans58xtp/origin.repaired.pdf']' returned non-zero exit status 2. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/ruffus/task.py", line 751, in run_pooled_job_without_exceptions register_cleanup, touch_files_only) File "/usr/lib/python3/dist-packages/ruffus/task.py", line 567, in job_wrapper_io_files ret_val = user_defined_work_func(*params) File "/usr/lib/python3/dist-packages/ocrmypdf/pipeline.py", line 218, in repair_and_parse_pdf qpdf.repair(input_file, output_file, log) File "/usr/lib/python3/dist-packages/ocrmypdf/exec/qpdf.py", line 90, in repair raise InputFileError() from e ocrmypdf.exceptions.InputFileError ________________________________________ Tasks which will be run: Task enters queue = 'ocrmypdf.pipeline.triage' Completed Task = 'ocrmypdf.pipeline.triage' Task enters queue = 'ocrmypdf.pipeline.repair_and_parse_pdf' Traceback (most recent call last): File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 901, in run_pipeline cmdline.run(options) File "/usr/lib/python3/dist-packages/ruffus/cmdline.py", line 824, in run **appropriate_options) File "/usr/lib/python3/dist-packages/ruffus/task.py", line 5938, in pipeline_run raise job_errors ruffus.ruffus_exceptions.RethrownJobError: Original exception: Exception #1 'ocrmypdf.exceptions.InputFileError' raised in ... Task = def ocrmypdf.pipeline.repair_and_parse_pdf(...): Job = [.../origin.pdf -> .../origin.repaired.pdf, <LoggingProxy>, <ocrmypdf.pipeline.JobContext>] Traceback (most recent call last): File "/usr/lib/python3/dist-packages/ocrmypdf/exec/qpdf.py", line 78, in repair check=True) File "/usr/lib/python3.6/subprocess.py", line 418, in run output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['qpdf', '/tmp/com.github.ocrmypdf.ans58xtp/origin.pdf', '/tmp/com.github.ocrmypdf.ans58xtp/origin.repaired.pdf']' returned non-zero exit status 2. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/ruffus/task.py", line 751, in run_pooled_job_without_exceptions register_cleanup, touch_files_only) File "/usr/lib/python3/dist-packages/ruffus/task.py", line 567, in job_wrapper_io_files ret_val = user_defined_work_func(*params) File "/usr/lib/python3/dist-packages/ocrmypdf/pipeline.py", line 218, in repair_and_parse_pdf qpdf.repair(input_file, output_file, log) File "/usr/lib/python3/dist-packages/ocrmypdf/exec/qpdf.py", line 90, in repair raise InputFileError() from e ocrmypdf.exceptions.InputFileError During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 953, in <module> sys.exit(run_pipeline()) File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 905, in run_pipeline exceptions = e.job_exceptions AttributeError: 'RethrownJobError' object has no attribute 'job_exceptions' ________________________________ test_encrypted ________________________________ resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_encrypted0/no_output.pdf' def test_encrypted(resources, no_outpdf): p, out, err = run_ocrmypdf( resources / 'skew-encrypted.pdf', no_outpdf) > assert p.returncode == ExitCode.encrypted_pdf E assert 1 == <ExitCode.encrypted_pdf: 8> E + where 1 = <subprocess.Popen object at 0x7f53948009b0>.returncode E + and <ExitCode.encrypted_pdf: 8> = ExitCode.encrypted_pdf tests/test_main.py:432: AssertionError __________________________ test_tesseract_crash[hocr] __________________________ renderer = 'hocr' spoof_tesseract_crash = {'ADTTMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest-lxc.kp73nwdh/do...p73nwdh/downtmp/test-suite-artifacts', 'AUTOPKGTEST_TMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', ...} resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_tesseract_crash_hocr_0/no_output.pdf' @pytest.mark.parametrize('renderer', RENDERERS) def test_tesseract_crash(renderer, spoof_tesseract_crash, resources, no_outpdf): p, out, err = run_ocrmypdf( resources / 'ccitt.pdf', no_outpdf, '-v', '1', '--pdf-renderer', renderer, env=spoof_tesseract_crash) > assert p.returncode == ExitCode.child_process_error E assert 1 == <ExitCode.child_process_error: 7> E + where 1 = <subprocess.Popen object at 0x7f53947d2940>.returncode E + and <ExitCode.child_process_error: 7> = ExitCode.child_process_error tests/test_main.py:454: AssertionError _______________________ test_tesseract_crash[tesseract] ________________________ renderer = 'tesseract' spoof_tesseract_crash = {'ADTTMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest-lxc.kp73nwdh/do...p73nwdh/downtmp/test-suite-artifacts', 'AUTOPKGTEST_TMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', ...} resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_tesseract_crash_tesseract0/no_output.pdf' @pytest.mark.parametrize('renderer', RENDERERS) def test_tesseract_crash(renderer, spoof_tesseract_crash, resources, no_outpdf): p, out, err = run_ocrmypdf( resources / 'ccitt.pdf', no_outpdf, '-v', '1', '--pdf-renderer', renderer, env=spoof_tesseract_crash) > assert p.returncode == ExitCode.child_process_error E assert 1 == <ExitCode.child_process_error: 7> E + where 1 = <subprocess.Popen object at 0x7f53947d2908>.returncode E + and <ExitCode.child_process_error: 7> = ExitCode.child_process_error tests/test_main.py:454: AssertionError ________________________ test_tesseract_crash[sandwich] ________________________ renderer = 'sandwich' spoof_tesseract_crash = {'ADTTMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest-lxc.kp73nwdh/do...p73nwdh/downtmp/test-suite-artifacts', 'AUTOPKGTEST_TMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', ...} resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_tesseract_crash_sandwich_0/no_output.pdf' @pytest.mark.parametrize('renderer', RENDERERS) def test_tesseract_crash(renderer, spoof_tesseract_crash, resources, no_outpdf): p, out, err = run_ocrmypdf( resources / 'ccitt.pdf', no_outpdf, '-v', '1', '--pdf-renderer', renderer, env=spoof_tesseract_crash) > assert p.returncode == ExitCode.child_process_error E assert 1 == <ExitCode.child_process_error: 7> E + where 1 = <subprocess.Popen object at 0x7f53948815c0>.returncode E + and <ExitCode.child_process_error: 7> = ExitCode.child_process_error tests/test_main.py:454: AssertionError _______________________ test_tesseract_crash_autorotate ________________________ spoof_tesseract_crash = {'ADTTMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest-lxc.kp73nwdh/do...p73nwdh/downtmp/test-suite-artifacts', 'AUTOPKGTEST_TMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', ...} resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_tesseract_crash_autorotat0/no_output.pdf' def test_tesseract_crash_autorotate(spoof_tesseract_crash, resources, no_outpdf): p, out, err = run_ocrmypdf( resources / 'ccitt.pdf', no_outpdf, '-r', env=spoof_tesseract_crash) > assert p.returncode == ExitCode.child_process_error E assert 1 == <ExitCode.child_process_error: 7> E + where 1 = <subprocess.Popen object at 0x7f53947e9e10>.returncode E + and <ExitCode.child_process_error: 7> = ExitCode.child_process_error tests/test_main.py:464: AssertionError __________________________________ test_algo4 __________________________________ resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_algo40/no_output.pdf' def test_algo4(resources, no_outpdf): p, _, _ = run_ocrmypdf(resources / 'encrypted_algo4.pdf', no_outpdf) > assert p.returncode == ExitCode.encrypted_pdf E assert 1 == <ExitCode.encrypted_pdf: 8> E + where 1 = <subprocess.Popen object at 0x7f53947e9978>.returncode E + and <ExitCode.encrypted_pdf: 8> = ExitCode.encrypted_pdf tests/test_main.py:483: AssertionError _____________________ test_tesseract_config_invalid[hocr] ______________________ renderer = 'hocr' resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') outdir = PosixPath('/tmp/pytest-of-debci/pytest-0/test_tesseract_config_invalid_0') @pytest.mark.parametrize('renderer', RENDERERS) def test_tesseract_config_invalid(renderer, resources, outdir): cfg_file = outdir / 'test.cfg' with cfg_file.open('w') as f: f.write('''\ THIS FILE IS INVALID ''') p, out, err = run_ocrmypdf( resources / 'ccitt.pdf', outdir / 'out.pdf', '--pdf-renderer', renderer, '--tesseract-config', cfg_file) assert "parameter not found" in err, "No error message" > assert p.returncode == ExitCode.invalid_config E assert 1 == <ExitCode.invalid_config: 9> E + where 1 = <subprocess.Popen object at 0x7f53946c3128>.returncode E + and <ExitCode.invalid_config: 9> = ExitCode.invalid_config tests/test_main.py:738: AssertionError ___________________ test_tesseract_config_invalid[tesseract] ___________________ renderer = 'tesseract' resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') outdir = PosixPath('/tmp/pytest-of-debci/pytest-0/test_tesseract_config_invalid_1') @pytest.mark.parametrize('renderer', RENDERERS) def test_tesseract_config_invalid(renderer, resources, outdir): cfg_file = outdir / 'test.cfg' with cfg_file.open('w') as f: f.write('''\ THIS FILE IS INVALID ''') p, out, err = run_ocrmypdf( resources / 'ccitt.pdf', outdir / 'out.pdf', '--pdf-renderer', renderer, '--tesseract-config', cfg_file) assert "parameter not found" in err, "No error message" > assert p.returncode == ExitCode.invalid_config E assert 1 == <ExitCode.invalid_config: 9> E + where 1 = <subprocess.Popen object at 0x7f53946c3ac8>.returncode E + and <ExitCode.invalid_config: 9> = ExitCode.invalid_config tests/test_main.py:738: AssertionError ___________________ test_tesseract_config_invalid[sandwich] ____________________ renderer = 'sandwich' resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') outdir = PosixPath('/tmp/pytest-of-debci/pytest-0/test_tesseract_config_invalid_2') @pytest.mark.parametrize('renderer', RENDERERS) def test_tesseract_config_invalid(renderer, resources, outdir): cfg_file = outdir / 'test.cfg' with cfg_file.open('w') as f: f.write('''\ THIS FILE IS INVALID ''') p, out, err = run_ocrmypdf( resources / 'ccitt.pdf', outdir / 'out.pdf', '--pdf-renderer', renderer, '--tesseract-config', cfg_file) assert "parameter not found" in err, "No error message" > assert p.returncode == ExitCode.invalid_config E assert 1 == <ExitCode.invalid_config: 9> E + where 1 = <subprocess.Popen object at 0x7f5394881588>.returncode E + and <ExitCode.invalid_config: 9> = ExitCode.invalid_config tests/test_main.py:738: AssertionError ____________________________ test_gs_render_failure ____________________________ spoof_no_tess_gs_render_fail = {'ADTTMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest-lxc.kp73nwdh/do...p73nwdh/downtmp/test-suite-artifacts', 'AUTOPKGTEST_TMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', ...} resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') outpdf = '/tmp/pytest-of-debci/pytest-0/test_gs_render_failure0/out.pdf' def test_gs_render_failure(spoof_no_tess_gs_render_fail, resources, outpdf): p, out, err = run_ocrmypdf( resources / 'blank.pdf', outpdf, env=spoof_no_tess_gs_render_fail) print(err) > assert p.returncode == ExitCode.child_process_error E assert 1 == <ExitCode.child_process_error: 7> E + where 1 = <subprocess.Popen object at 0x7f53948b0208>.returncode E + and <ExitCode.child_process_error: 7> = ExitCode.child_process_error tests/test_main.py:811: AssertionError ----------------------------- Captured stdout call ----------------------------- ERROR - ERROR: Casper is not a friendly ghost ERROR - Ghostscript PDF/A rendering failed Traceback (most recent call last): File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 901, in run_pipeline cmdline.run(options) File "/usr/lib/python3/dist-packages/ruffus/cmdline.py", line 824, in run **appropriate_options) File "/usr/lib/python3/dist-packages/ruffus/task.py", line 5938, in pipeline_run raise job_errors ruffus.ruffus_exceptions.RethrownJobError: Original exception: Exception #1 'ocrmypdf.exceptions.SubprocessOutputError' raised in ... Task = def ocrmypdf.pipeline.merge_pages_ghostscript(...): Job = [[.../000001.rendered.pdf, .../pdfa.ps] -> .../merged.pdf, <LoggingProxy>, <ocrmypdf.pipeline.JobContext>] Traceback (most recent call last): File "/usr/lib/python3/dist-packages/ruffus/task.py", line 751, in run_pooled_job_without_exceptions register_cleanup, touch_files_only) File "/usr/lib/python3/dist-packages/ruffus/task.py", line 567, in job_wrapper_io_files ret_val = user_defined_work_func(*params) File "/usr/lib/python3/dist-packages/ocrmypdf/pipeline.py", line 987, in merge_pages_ghostscript pdfa_part=options.output_type[-1]) # is pdfa-1, pdfa-2, or pdfa-3 File "/usr/lib/python3/dist-packages/ocrmypdf/exec/ghostscript.py", line 194, in generate_pdfa raise SubprocessOutputError() ocrmypdf.exceptions.SubprocessOutputError During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 953, in <module> sys.exit(run_pipeline()) File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 905, in run_pipeline exceptions = e.job_exceptions AttributeError: 'RethrownJobError' object has no attribute 'job_exceptions' ____________________________ test_gs_raster_failure ____________________________ spoof_no_tess_gs_raster_fail = {'ADTTMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', 'ADT_ARTIFACTS': '/tmp/autopkgtest-lxc.kp73nwdh/do...p73nwdh/downtmp/test-suite-artifacts', 'AUTOPKGTEST_TMP': '/tmp/autopkgtest-lxc.kp73nwdh/downtmp/autopkgtest_tmp', ...} resources = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources') outpdf = '/tmp/pytest-of-debci/pytest-0/test_gs_raster_failure0/out.pdf' def test_gs_raster_failure(spoof_no_tess_gs_raster_fail, resources, outpdf): p, out, err = run_ocrmypdf( resources / 'ccitt.pdf', outpdf, env=spoof_no_tess_gs_raster_fail) print(err) > assert p.returncode == ExitCode.child_process_error E assert 1 == <ExitCode.child_process_error: 7> E + where 1 = <subprocess.Popen object at 0x7f53946bc898>.returncode E + and <ExitCode.child_process_error: 7> = ExitCode.child_process_error tests/test_main.py:819: AssertionError ----------------------------- Captured stdout call ----------------------------- ERROR - ERROR: Ghost story archive not found ERROR - Ghostscript rasterizing failed Traceback (most recent call last): File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 901, in run_pipeline cmdline.run(options) File "/usr/lib/python3/dist-packages/ruffus/cmdline.py", line 824, in run **appropriate_options) File "/usr/lib/python3/dist-packages/ruffus/task.py", line 5938, in pipeline_run raise job_errors ruffus.ruffus_exceptions.RethrownJobError: Original exception: Exception #1 'ocrmypdf.exceptions.SubprocessOutputError' raised in ... Task = def ocrmypdf.pipeline.rasterize_with_ghostscript(...): Job = [.../000001.ocr.oriented.pdf -> .../000001.page.png, <LoggingProxy>, <ocrmypdf.pipeline.JobContext>] Traceback (most recent call last): File "/usr/lib/python3/dist-packages/ruffus/task.py", line 751, in run_pooled_job_without_exceptions register_cleanup, touch_files_only) File "/usr/lib/python3/dist-packages/ruffus/task.py", line 567, in job_wrapper_io_files ret_val = user_defined_work_func(*params) File "/usr/lib/python3/dist-packages/ocrmypdf/pipeline.py", line 527, in rasterize_with_ghostscript raster_device=device, log=log, page_dpi=(page_dpi, page_dpi)) File "/usr/lib/python3/dist-packages/ocrmypdf/exec/ghostscript.py", line 98, in rasterize_pdf raise SubprocessOutputError() ocrmypdf.exceptions.SubprocessOutputError During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 953, in <module> sys.exit(run_pipeline()) File "/usr/lib/python3/dist-packages/ocrmypdf/__main__.py", line 905, in run_pipeline exceptions = e.job_exceptions AttributeError: 'RethrownJobError' object has no attribute 'job_exceptions' _______________________ test_userunit_ghostscript_fails ________________________ poster = PosixPath('/tmp/autopkgtest-lxc.kp73nwdh/downtmp/build.CLj/src/tests/resources/poster.pdf') no_outpdf = '/tmp/pytest-of-debci/pytest-0/test_userunit_ghostscript_fail0/no_output.pdf' def test_userunit_ghostscript_fails(poster, no_outpdf): p, out, err = run_ocrmypdf(poster, no_outpdf, '--output-type=pdfa') > assert p.returncode == ExitCode.input_file E assert 1 == <ExitCode.input_file: 2> E + where 1 = <subprocess.Popen object at 0x7f539486fb38>.returncode E + and <ExitCode.input_file: 2> = ExitCode.input_file tests/test_userunit.py:44: AssertionError ======== 16 failed, 141 passed, 7 skipped, 4 xfailed in 1053.38 seconds ======== autopkgtest [04:51:54]: test test-suite: -----------------------]
signature.asc
Description: OpenPGP digital signature