mirror of
https://github.com/qurator-spk/eynollah.git
synced 2025-06-09 12:19:54 +02:00
do an actual test run
This commit is contained in:
parent
3905203294
commit
4e1956df5e
5 changed files with 82 additions and 1 deletions
54
tests/base.py
Normal file
54
tests/base.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
# pylint: disable=unused-import
|
||||
|
||||
from os.path import dirname, realpath
|
||||
from os import chdir
|
||||
import sys
|
||||
import logging
|
||||
import io
|
||||
import collections
|
||||
from unittest import TestCase as VanillaTestCase, skip, main as unittests_main
|
||||
import pytest
|
||||
from ocrd_utils import disableLogging, initLogging
|
||||
|
||||
def main(fn=None):
|
||||
if fn:
|
||||
sys.exit(pytest.main([fn]))
|
||||
else:
|
||||
unittests_main()
|
||||
|
||||
class TestCase(VanillaTestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
chdir(dirname(realpath(__file__)) + '/..')
|
||||
|
||||
def setUp(self):
|
||||
disableLogging()
|
||||
initLogging()
|
||||
|
||||
class CapturingTestCase(TestCase):
|
||||
"""
|
||||
A TestCase that needs to capture stderr/stdout and invoke click CLI.
|
||||
"""
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _setup_pytest_capfd(self, capfd):
|
||||
self.capfd = capfd
|
||||
|
||||
def invoke_cli(self, cli, args):
|
||||
"""
|
||||
Substitution for click.CliRunner.invooke that works together nicely
|
||||
with unittests/pytest capturing stdout/stderr.
|
||||
"""
|
||||
self.capture_out_err() # XXX snapshot just before executing the CLI
|
||||
code = 0
|
||||
sys.argv[1:] = args # XXX necessary because sys.argv reflects pytest args not cli args
|
||||
try:
|
||||
cli.main(args=args)
|
||||
except SystemExit as e:
|
||||
code = e.code
|
||||
out, err = self.capture_out_err()
|
||||
return code, out, err
|
||||
|
||||
def capture_out_err(self):
|
||||
return self.capfd.readouterr()
|
Loading…
Add table
Add a link
Reference in a new issue