# HG changeset patch # User Paul Boddie # Date 1534193641 -7200 # Node ID 3e20c79e689b047773cc8c4c63a551bd7de1456b # Parent bec7e083676d4ea1c515aef74afec5bd92013cb4 Expanded testing to cover macro expansion transformations. diff -r bec7e083676d -r 3e20c79e689b tests/test_macros.tree --- a/tests/test_macros.tree Mon Aug 13 22:52:54 2018 +0200 +++ b/tests/test_macros.tree Mon Aug 13 22:54:01 2018 +0200 @@ -8,6 +8,8 @@ Break Block Text + Macro + Text Break Heading Text diff -r bec7e083676d -r 3e20c79e689b tests/test_macros.tree-exp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test_macros.tree-exp Mon Aug 13 22:54:01 2018 +0200 @@ -0,0 +1,32 @@ +Region + List + ListItem + Link + Text + Text + List + ListItem + Link + Text + Text + Break + Heading + Text + Break + Block + Text + List + ListItem + Link + Text + Text + Block + Text + Break + Heading + Text + Break + Block + Text + LineBreak + Text diff -r bec7e083676d -r 3e20c79e689b tests/test_macros.txt --- a/tests/test_macros.txt Mon Aug 13 22:52:54 2018 +0200 +++ b/tests/test_macros.txt Mon Aug 13 22:54:01 2018 +0200 @@ -2,7 +2,7 @@ = Heading = -Some text. +Some text. <> And more. == Subheading == diff -r bec7e083676d -r 3e20c79e689b tests/test_parser.py --- a/tests/test_parser.py Mon Aug 13 22:52:54 2018 +0200 +++ b/tests/test_parser.py Mon Aug 13 22:54:01 2018 +0200 @@ -17,7 +17,7 @@ # Import specific objects. -from moinformat import make_input, make_output, make_serialiser, parse, serialise +from moinformat import make_input, make_output, make_parser, make_serialiser, parse, serialise from moinformat.tree.moin import Container def test_input(d, s): @@ -171,6 +171,16 @@ return branches[0] +def get_tree(input, tree_filename): + + "Using 'input', return (text, tree) for 'tree_filename'." + + if input.dir.exists(tree_filename): + ts = input.readfile(tree_filename) + return ts, parse_tree(ts) + else: + return None, None + if __name__ == "__main__": args = sys.argv[1:] @@ -201,20 +211,20 @@ text_filename = filename encoding = None - tree_filename = "%s.tree" % text_filename.rsplit(".", 1)[0] + basename = text_filename.rsplit(".", 1)[0] + tree_filename = "%s.tree" % basename + tree_exp_filename = "%s.tree-exp" % basename # Read and parse the input. s = input.readfile(text_filename, encoding) - d = parse(s) - - # Read and parse any tree definition. + p = make_parser() + d = parse(s, p) - if input.dir.exists(tree_filename): - ts = input.readfile(tree_filename) - t = parse_tree(ts) - else: - ts = None + # Read and parse any tree definitions. + + ts, t = get_tree(input, tree_filename) + tsexp, texp = get_tree(input, tree_exp_filename) # Report the test results. @@ -224,7 +234,13 @@ identical = test_input(d, s) tree_identical = ts and test_tree(d, t, ts) + if tsexp: + p.evaluate_macros() + tree_exp_identical = test_tree(d, texp, tsexp) + else: + tree_exp_identical = None + if quiet: - print "%s %s: %s" % (identical, tree_identical, filename) + print "%s %s %s: %s" % (identical, tree_identical, tree_exp_identical, filename) # vim: tabstop=4 expandtab shiftwidth=4