1.1 --- a/tests/test_parser.py Mon Aug 13 22:52:54 2018 +0200
1.2 +++ b/tests/test_parser.py Mon Aug 13 22:54:01 2018 +0200
1.3 @@ -17,7 +17,7 @@
1.4
1.5 # Import specific objects.
1.6
1.7 -from moinformat import make_input, make_output, make_serialiser, parse, serialise
1.8 +from moinformat import make_input, make_output, make_parser, make_serialiser, parse, serialise
1.9 from moinformat.tree.moin import Container
1.10
1.11 def test_input(d, s):
1.12 @@ -171,6 +171,16 @@
1.13
1.14 return branches[0]
1.15
1.16 +def get_tree(input, tree_filename):
1.17 +
1.18 + "Using 'input', return (text, tree) for 'tree_filename'."
1.19 +
1.20 + if input.dir.exists(tree_filename):
1.21 + ts = input.readfile(tree_filename)
1.22 + return ts, parse_tree(ts)
1.23 + else:
1.24 + return None, None
1.25 +
1.26 if __name__ == "__main__":
1.27 args = sys.argv[1:]
1.28
1.29 @@ -201,20 +211,20 @@
1.30 text_filename = filename
1.31 encoding = None
1.32
1.33 - tree_filename = "%s.tree" % text_filename.rsplit(".", 1)[0]
1.34 + basename = text_filename.rsplit(".", 1)[0]
1.35 + tree_filename = "%s.tree" % basename
1.36 + tree_exp_filename = "%s.tree-exp" % basename
1.37
1.38 # Read and parse the input.
1.39
1.40 s = input.readfile(text_filename, encoding)
1.41 - d = parse(s)
1.42 -
1.43 - # Read and parse any tree definition.
1.44 + p = make_parser()
1.45 + d = parse(s, p)
1.46
1.47 - if input.dir.exists(tree_filename):
1.48 - ts = input.readfile(tree_filename)
1.49 - t = parse_tree(ts)
1.50 - else:
1.51 - ts = None
1.52 + # Read and parse any tree definitions.
1.53 +
1.54 + ts, t = get_tree(input, tree_filename)
1.55 + tsexp, texp = get_tree(input, tree_exp_filename)
1.56
1.57 # Report the test results.
1.58
1.59 @@ -224,7 +234,13 @@
1.60 identical = test_input(d, s)
1.61 tree_identical = ts and test_tree(d, t, ts)
1.62
1.63 + if tsexp:
1.64 + p.evaluate_macros()
1.65 + tree_exp_identical = test_tree(d, texp, tsexp)
1.66 + else:
1.67 + tree_exp_identical = None
1.68 +
1.69 if quiet:
1.70 - print "%s %s: %s" % (identical, tree_identical, filename)
1.71 + print "%s %s %s: %s" % (identical, tree_identical, tree_exp_identical, filename)
1.72
1.73 # vim: tabstop=4 expandtab shiftwidth=4