diff options
Diffstat (limited to 'tests/warn/warningtester.py')
-rw-r--r-- | tests/warn/warningtester.py | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/tests/warn/warningtester.py b/tests/warn/warningtester.py index ee6b3c16..b2117910 100644 --- a/tests/warn/warningtester.py +++ b/tests/warn/warningtester.py @@ -10,11 +10,11 @@ sys.path.insert(0, path) # Not correct, but enough to get the tests going uninstalled __builtin__.__dict__['DATADIR'] = path -from giscanner.annotationparser import AnnotationParser +from giscanner.annotationparser import GtkDocCommentBlockParser from giscanner.ast import Include, Namespace from giscanner.introspectablepass import IntrospectablePass from giscanner.maintransformer import MainTransformer -from giscanner.message import MessageLogger +from giscanner.message import MessageLogger, WARNING, ERROR, FATAL from giscanner.sourcescanner import SourceScanner from giscanner.transformer import Transformer from giscanner.scannermain import process_packages @@ -60,24 +60,22 @@ def _diff(a, b): if tag == 'equal': for line in a[i1:i2]: for l in line.split('\n'): - if l != '': - retval += ' ' + l + '\n' + retval += ' ' + l + '\n' continue if tag in ('replace', 'delete'): for line in a[i1:i2]: for l in line.split('\n'): - if l != '': - retval += '-' + l + '\n' + retval += '-' + l + '\n' if tag in ('replace', 'insert'): for line in b[j1:j2]: for l in line.split('\n'): - if l != '': - retval += '+' + l + '\n' + retval += '+' + l + '\n' return retval + def _extract_expected(filename): fd = open(filename, 'rU') data = fd.read() @@ -92,13 +90,14 @@ def _extract_expected(filename): return retval + def check(args): filename = args[0] output = ChunkedIO() namespace = Namespace('Test', '1.0') logger = MessageLogger.get(namespace=namespace, output=output) - logger.enable_warnings(True) + logger.enable_warnings((WARNING, ERROR, FATAL)) transformer = Transformer(namespace) transformer.set_include_paths([os.path.join(top_srcdir, 'gir'), top_builddir]) @@ -115,8 +114,8 @@ def check(args): ss.parse_macros([filename]) transformer.parse(ss.get_symbols()) - ap = AnnotationParser() - blocks = ap.parse(ss.get_comments()) + cbp = GtkDocCommentBlockParser() + blocks = cbp.parse_comment_blocks(ss.get_comments()) main = MainTransformer(transformer, blocks) main.transform() @@ -128,12 +127,16 @@ def check(args): expected_warnings = _extract_expected(filename) + sortkey = lambda x: int(x.split(':')[0]) + expected_warnings.sort(key=sortkey) + emitted_warnings.sort(key=sortkey) + if len(expected_warnings) != len(emitted_warnings): raise SystemExit('ERROR in %r: %d warnings were emitted, ' - 'expected %d:\n%s' %(os.path.basename(filename), - len(emitted_warnings), - len(expected_warnings), - _diff(expected_warnings, emitted_warnings))) + 'expected %d:\n%s' % (os.path.basename(filename), + len(emitted_warnings), + len(expected_warnings), + _diff(expected_warnings, emitted_warnings))) for emitted_warning, expected_warning in zip(emitted_warnings, expected_warnings): if expected_warning != emitted_warning: |