tests/silenttestrunner.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 24 May 2022 09:36:40 +0200
branchstable
changeset 49213 c95e5ba4de1e
parent 43076 2372284d9457
child 48875 6000f5b25c9b
permissions -rw-r--r--
run-tests: also send a message in the Keyboard interrupt case The next patch will do something equivalent, so lets do the change in an independant changeset first in case we need to bisect something in the future.

from __future__ import absolute_import, print_function
import os
import sys
import unittest


def main(modulename):
    '''run the tests found in module, printing nothing when all tests pass'''
    module = sys.modules[modulename]
    suite = unittest.defaultTestLoader.loadTestsFromModule(module)
    results = unittest.TestResult()
    suite.run(results)
    if results.errors or results.failures:
        for tc, exc in results.errors:
            print('ERROR:', tc)
            print()
            sys.stdout.write(exc)
        for tc, exc in results.failures:
            print('FAIL:', tc)
            print()
            sys.stdout.write(exc)
        sys.exit(1)


if os.environ.get('SILENT_BE_NOISY'):
    main = unittest.main