Move duplicate test code into common namespace

This commit is contained in:
James R. Barlow
2017-01-26 13:36:52 -08:00
parent 77d31bf646
commit fb9e7c82f6
8 changed files with 36 additions and 45 deletions
+2 -1
View File
@@ -9,4 +9,5 @@ ignore =
.github
[tool:pytest]
norecursedirs = lib .pc .git
norecursedirs = lib .pc .git output cache resources
testpaths = tests
+2 -1
View File
@@ -216,7 +216,8 @@ setup(
setup_requires=[
'setuptools_scm',
'cffi>=1.5.0',
'pytest-runner'
'pytest-runner',
'pytest-helpers-namespace'
],
use_scm_version={'version_scheme': 'post-release'},
cffi_modules=[
+2 -1
View File
@@ -1 +1,2 @@
pytest >= 2.7.2
pytest >= 2.8
pytest-helpers-namespace
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env python3
# © 2017 James R. Barlow: github.com/jbarlow83
import sys
import os
import platform
pytest_plugins = ['helpers_namespace']
import pytest
if sys.version_info.major < 3:
print("Requires Python 3.4+")
sys.exit(1)
@pytest.helpers.register
def is_linux():
return platform.system() == 'Linux'
@pytest.helpers.register
def running_in_docker():
# Docker creates a file named /.dockerinit
return os.path.exists('/.dockerinit')
-5
View File
@@ -15,14 +15,9 @@ import pytest
import sys
if sys.version_info.major < 3:
print("Requires Python 3.4+")
sys.exit(1)
TESTS_ROOT = os.path.abspath(os.path.dirname(__file__))
SPOOF_PATH = os.path.join(TESTS_ROOT, 'spoof')
PROJECT_ROOT = os.path.dirname(TESTS_ROOT)
OCRMYPDF = os.path.join(PROJECT_ROOT, 'OCRmyPDF.sh')
TEST_RESOURCES = os.path.join(PROJECT_ROOT, 'tests', 'resources')
TEST_OUTPUT = os.environ.get(
'OCRMYPDF_TEST_OUTPUT',
+3 -18
View File
@@ -1,7 +1,6 @@
#!/usr/bin/env python3
# © 2015 James R. Barlow: github.com/jbarlow83
from __future__ import print_function
from subprocess import Popen, PIPE, check_output, check_call, DEVNULL
import os
import shutil
@@ -13,13 +12,8 @@ import PyPDF2 as pypdf
from ocrmypdf.exceptions import ExitCode
from ocrmypdf import leptonica
from ocrmypdf.pdfa import file_claims_pdfa
import platform
if sys.version_info.major < 3:
print("Requires Python 3.4+")
sys.exit(1)
TESTS_ROOT = os.path.abspath(os.path.dirname(__file__))
SPOOF_PATH = os.path.join(TESTS_ROOT, 'spoof')
PROJECT_ROOT = os.path.dirname(TESTS_ROOT)
@@ -30,15 +24,6 @@ TEST_OUTPUT = os.environ.get(
OCRMYPDF = [sys.executable, '-m', 'ocrmypdf']
def running_in_docker():
# Docker creates a file named /.dockerinit
return os.path.exists('/.dockerinit')
def is_linux():
return platform.system() == 'Linux'
def setup_module():
with suppress(FileNotFoundError):
shutil.rmtree(TEST_OUTPUT)
@@ -115,7 +100,7 @@ def spoof_tesseract_noop():
@pytest.fixture
def spoof_tesseract_cache():
if running_in_docker():
if pytest.helpers.running_in_docker():
return os.environ.copy()
return spoof(tesseract="tesseract_cache.py")
@@ -246,7 +231,7 @@ def test_preserve_metadata(spoof_tesseract_noop, output_type):
@pytest.mark.skipif(
is_linux() and not running_in_docker(),
pytest.helpers.is_linux() and not pytest.helpers.running_in_docker(),
reason="likely to fail if Linux locale is not configured correctly")
@pytest.mark.parametrize("output_type", [
'pdfa', 'pdf'
@@ -511,7 +496,7 @@ def test_missing_docinfo(spoof_tesseract_noop):
assert p.returncode == ExitCode.ok, err
@pytest.mark.skipif(running_in_docker(),
@pytest.mark.skipif(pytest.helpers.running_in_docker(),
reason="writes to tests/resources")
def test_uppercase_extension(spoof_tesseract_noop):
shutil.copy(_infile("skew.pdf"), _infile("UPPERCASE.PDF"))
-4
View File
@@ -14,10 +14,6 @@ import pytest
import sys
if sys.version_info.major < 3:
print("Requires Python 3.4+")
sys.exit(1)
TESTS_ROOT = os.path.abspath(os.path.dirname(__file__))
SPOOF_PATH = os.path.join(TESTS_ROOT, 'spoof')
PROJECT_ROOT = os.path.dirname(TESTS_ROOT)
+1 -15
View File
@@ -1,7 +1,6 @@
#!/usr/bin/env python3
# © 2017 James R. Barlow: github.com/jbarlow83
from __future__ import print_function
from subprocess import Popen, PIPE, check_output, check_call, DEVNULL
import os
import shutil
@@ -14,13 +13,9 @@ from ocrmypdf.exceptions import ExitCode
from ocrmypdf import leptonica
from ocrmypdf.pdfa import file_claims_pdfa
from ocrmypdf.exec import tesseract
import platform
from common import is_linux, running_in_docker
if sys.version_info.major < 3:
print("Requires Python 3.4+")
sys.exit(1)
TESTS_ROOT = os.path.abspath(os.path.dirname(__file__))
SPOOF_PATH = os.path.join(TESTS_ROOT, 'spoof')
PROJECT_ROOT = os.path.dirname(TESTS_ROOT)
@@ -33,15 +28,6 @@ pytestmark = pytest.mark.skipif(not tesseract.v4(),
reason="tesseract 4.0 required")
def running_in_docker():
# Docker creates a file named /.dockerinit
return os.path.exists('/.dockerinit')
def is_linux():
return platform.system() == 'Linux'
def _infile(input_basename):
return os.path.join(TEST_RESOURCES, input_basename)