Remove _OCRMYPDF_TEST_PATH environment variable

This commit is contained in:
James R. Barlow
2020-06-09 00:30:13 -07:00
parent ebbf68bd08
commit 21c0e045cb
3 changed files with 9 additions and 28 deletions
+2 -13
View File
@@ -34,20 +34,10 @@ from ocrmypdf.exceptions import MissingDependencyError
log = logging.getLogger(__name__)
def _get_program(args, env=None):
program = args[0]
test_path = env.get('_OCRMYPDF_TEST_PATH', '')
if test_path:
program = shutil.which(program, path=test_path)
return program
def run(args, *, env=None, **kwargs):
"""Wrapper around subprocess.run()
The main purpose of this wrapper is to allow us to substitute the main program
for a spoof in the test suite. The hidden variable _OCRMYPDF_TEST_PATH replaces
the main PATH as a location to check for programs to run.
The main purpose of this wrapper is to log subprocess output.
Secondly we have to account for behavioral differences in Windows in particular.
Creating symbolic links in Windows requires administrator privileges and
@@ -62,8 +52,7 @@ def run(args, *, env=None, **kwargs):
env = os.environ
# Search in spoof path if necessary
program = _get_program(args, env)
args = [program] + args[1:]
program = args[0]
if os.name == 'nt':
args = fix_windows_args(program, args, env)
+4 -10
View File
@@ -105,7 +105,7 @@ def no_outpdf(tmp_path):
@pytest.helpers.register
def check_ocrmypdf(input_file, output_file, *args, env=None):
def check_ocrmypdf(input_file, output_file, *args):
"""Run ocrmypdf and confirmed that a valid file was created"""
args = [str(input_file), str(output_file)] + [
str(arg) for arg in args if arg is not None
@@ -113,8 +113,6 @@ def check_ocrmypdf(input_file, output_file, *args, env=None):
_parser, options, plugin_manager = get_parser_options_plugins(args=args)
api.check_options(options, plugin_manager)
if env:
assert False, 'env set'
result = api.run_pipeline(options, plugin_manager=plugin_manager, api=True)
assert result == 0
@@ -125,7 +123,7 @@ def check_ocrmypdf(input_file, output_file, *args, env=None):
@pytest.helpers.register
def run_ocrmypdf_api(input_file, output_file, *args, env=None):
def run_ocrmypdf_api(input_file, output_file, *args):
"""Run ocrmypdf via API and let caller deal with results
Does not currently have a way to manipulate the PATH except for Tesseract.
@@ -135,8 +133,6 @@ def run_ocrmypdf_api(input_file, output_file, *args, env=None):
str(arg) for arg in args if arg is not None
]
_parser, options, plugin_manager = get_parser_options_plugins(args=args)
if env:
assert False, 'env set'
if options.tesseract_env:
assert all(isinstance(v, (str, bytes)) for v in options.tesseract_env.values())
@@ -145,12 +141,9 @@ def run_ocrmypdf_api(input_file, output_file, *args, env=None):
@pytest.helpers.register
def run_ocrmypdf(input_file, output_file, *args, env=None, universal_newlines=True):
def run_ocrmypdf(input_file, output_file, *args, universal_newlines=True):
"Run ocrmypdf and let caller deal with results"
if env is None:
env = os.environ.copy()
p_args = (
OCRMYPDF
+ [str(arg) for arg in args if arg is not None]
@@ -162,6 +155,7 @@ def run_ocrmypdf(input_file, output_file, *args, env=None, universal_newlines=Tr
# Details: https://coverage.readthedocs.io/en/coverage-5.0/subprocess.html
coverage_rc = Path(__file__).parent.parent / '.coveragerc'
assert coverage_rc.exists()
env = os.environ.copy()
env['COVERAGE_PROCESS_START'] = os.fspath(coverage_rc)
p = run(
+3 -5
View File
@@ -105,11 +105,9 @@ def test_closed_streams(ocrmypdf_exec, resources, outpdf):
Path('/etc/alpine-release').exists(), reason="invalid test on alpine"
)
@pytest.mark.skipif(os.name == 'nt', reason="invalid test on Windows")
def test_bad_locale():
env = os.environ.copy()
env['LC_ALL'] = 'C'
p, out, err = run_ocrmypdf('a', 'b', env=env)
def test_bad_locale(monkeypatch):
monkeypatch.setenv('LC_ALL', 'C')
p, out, err = run_ocrmypdf('a', 'b')
assert out == '', "stdout not clean"
assert p.returncode != 0
assert 'configured to use ASCII as encoding' in err, "should whine"