From e7387aab1a7200e223dd42e8a3b398bd4029b8c2 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 22 May 2014 16:36:23 +0530 Subject: [PATCH] Add tokenizer tests into the --test-build test suite --- src/calibre/test_build.py | 9 +++++++++ src/tinycss/tests/main.py | 23 +++++++++++++++-------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py index adf6a728c6..ce0452707b 100644 --- a/src/calibre/test_build.py +++ b/src/calibre/test_build.py @@ -146,6 +146,14 @@ def test_magick(): i = qimage_to_magick(img) print ('magick OK!') +def test_tokenizer(): + from tinycss.tokenizer import c_tokenize_flat + if c_tokenize_flat is None: + raise ValueError('tinycss C tokenizer not loaded') + from tinycss.tests.main import run_tests + run_tests(for_build=True) + print('tinycss tokenizer OK!') + def test(): test_plugins() test_lxml() @@ -160,6 +168,7 @@ def test(): test_html5lib() test_regex() test_magick() + test_tokenizer() if iswindows: test_winutil() test_wpd() diff --git a/src/tinycss/tests/main.py b/src/tinycss/tests/main.py index 3c82640da7..208ad7f095 100644 --- a/src/tinycss/tests/main.py +++ b/src/tinycss/tests/main.py @@ -11,12 +11,13 @@ import unittest, os, argparse def find_tests(): return unittest.defaultTestLoader.discover(os.path.dirname(os.path.abspath(__file__)), pattern='*.py') -def run_tests(find_tests=find_tests): - parser = argparse.ArgumentParser() - parser.add_argument('name', nargs='?', default=None, - help='The name of the test to run') - args = parser.parse_args() - if args.name and args.name.startswith('.'): +def run_tests(find_tests=find_tests, for_build=False): + if not for_build: + parser = argparse.ArgumentParser() + parser.add_argument('name', nargs='?', default=None, + help='The name of the test to run') + args = parser.parse_args() + if not for_build and args.name and args.name.startswith('.'): tests = find_tests() q = args.name[1:] if not q.startswith('test_'): @@ -38,9 +39,15 @@ def run_tests(find_tests=find_tests): raise SystemExit(1) tests = ans else: - tests = unittest.defaultTestLoader.loadTestsFromName(args.name) if args.name else find_tests() + tests = unittest.defaultTestLoader.loadTestsFromName(args.name) if not for_build and args.name else find_tests() r = unittest.TextTestRunner - r(verbosity=4).run(tests) + if for_build: + r = r(verbosity=0, buffer=True, failfast=True) + else: + r = r(verbosity=4) + result = r.run(tests) + if for_build and result.errors or result.failures: + raise SystemExit(1) if __name__ == '__main__': run_tests()