Add tokenizer tests into the --test-build test suite

This commit is contained in:
Kovid Goyal 2014-05-22 16:36:23 +05:30
parent a09869e9d8
commit e7387aab1a
2 changed files with 24 additions and 8 deletions

View File

@ -146,6 +146,14 @@ def test_magick():
i = qimage_to_magick(img) i = qimage_to_magick(img)
print ('magick OK!') 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(): def test():
test_plugins() test_plugins()
test_lxml() test_lxml()
@ -160,6 +168,7 @@ def test():
test_html5lib() test_html5lib()
test_regex() test_regex()
test_magick() test_magick()
test_tokenizer()
if iswindows: if iswindows:
test_winutil() test_winutil()
test_wpd() test_wpd()

View File

@ -11,12 +11,13 @@ import unittest, os, argparse
def find_tests(): def find_tests():
return unittest.defaultTestLoader.discover(os.path.dirname(os.path.abspath(__file__)), pattern='*.py') return unittest.defaultTestLoader.discover(os.path.dirname(os.path.abspath(__file__)), pattern='*.py')
def run_tests(find_tests=find_tests): def run_tests(find_tests=find_tests, for_build=False):
parser = argparse.ArgumentParser() if not for_build:
parser.add_argument('name', nargs='?', default=None, parser = argparse.ArgumentParser()
help='The name of the test to run') parser.add_argument('name', nargs='?', default=None,
args = parser.parse_args() help='The name of the test to run')
if args.name and args.name.startswith('.'): args = parser.parse_args()
if not for_build and args.name and args.name.startswith('.'):
tests = find_tests() tests = find_tests()
q = args.name[1:] q = args.name[1:]
if not q.startswith('test_'): if not q.startswith('test_'):
@ -38,9 +39,15 @@ def run_tests(find_tests=find_tests):
raise SystemExit(1) raise SystemExit(1)
tests = ans tests = ans
else: 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 = 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__': if __name__ == '__main__':
run_tests() run_tests()