From 2d9b8a39b6509d8a39dcf12b90dbcb2e8f07433f Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Sat, 6 Apr 2013 16:17:47 -0400 Subject: [PATCH] test_integration2(); finish TestBuilder --- tests/test_builder.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tests/test_builder.py b/tests/test_builder.py index 9425713..1e578ed 100644 --- a/tests/test_builder.py +++ b/tests/test_builder.py @@ -206,6 +206,7 @@ class TestBuilder(TreeEqualityTestCase): def test_integration(self): """a test for building a combination of templates together""" + # {{{{{{{{foo}}bar|baz=biz}}buzz}}usr|{{bin}}}} test = [tokens.TemplateOpen(), tokens.TemplateOpen(), tokens.TemplateOpen(), tokens.TemplateOpen(), tokens.Text(text="foo"), tokens.TemplateClose(), @@ -224,5 +225,37 @@ class TestBuilder(TreeEqualityTestCase): showkey=False)])]) self.assertWikicodeEqual(valid, self.builder.build(test)) + def test_integration2(self): + """an even more audacious test for building a horrible wikicode mess""" + # {{a|b|{{c|[[d]]{{{e}}}}}}}[[f|{{{g}}}]]{{i|j= }} + test = [tokens.TemplateOpen(), tokens.Text(text="a"), + tokens.TemplateParamSeparator(), tokens.Text(text="b"), + tokens.TemplateParamSeparator(), tokens.TemplateOpen(), + tokens.Text(text="c"), tokens.TemplateParamSeparator(), + tokens.WikilinkOpen(), tokens.Text(text="d"), + tokens.WikilinkClose(), tokens.ArgumentOpen(), + tokens.Text(text="e"), tokens.ArgumentClose(), + tokens.TemplateClose(), tokens.TemplateClose(), + tokens.WikilinkOpen(), tokens.Text(text="f"), + tokens.WikilinkSeparator(), tokens.ArgumentOpen(), + tokens.Text(text="g"), tokens.ArgumentClose(), + tokens.CommentStart(), tokens.Text(text="h"), + tokens.CommentEnd(), tokens.WikilinkClose(), + tokens.TemplateOpen(), tokens.Text(text="i"), + tokens.TemplateParamSeparator(), tokens.Text(text="j"), + tokens.TemplateParamEquals(), tokens.HTMLEntityStart(), + tokens.Text(text="nbsp"), tokens.HTMLEntityEnd(), + tokens.TemplateClose()] + valid = wrap( + [Template(wrap([Text("a")]), params=[Parameter(wrap([Text("1")]), + wrap([Text("b")]), showkey=False), Parameter(wrap([Text("2")]), + wrap([Template(wrap([Text("c")]), params=[Parameter(wrap([Text("1") + ]), wrap([Wikilink(wrap([Text("d")])), Argument(wrap([Text("e")]))] + ), showkey=False)])]), showkey=False)]), Wikilink(wrap([Text("f")] + ), wrap([Argument(wrap([Text("g")])), Comment(wrap([Text("h")]))]) + ), Template(wrap([Text("i")]), params=[Parameter(wrap([Text("j")]), + wrap([HTMLEntity("nbsp", named=True)]))])]) + self.assertWikicodeEqual(valid, self.builder.build(test)) + if __name__ == "__main__": unittest.main(verbosity=2)