|
@@ -206,6 +206,7 @@ class TestBuilder(TreeEqualityTestCase): |
|
|
|
|
|
|
|
|
def test_integration(self): |
|
|
def test_integration(self): |
|
|
"""a test for building a combination of templates together""" |
|
|
"""a test for building a combination of templates together""" |
|
|
|
|
|
# {{{{{{{{foo}}bar|baz=biz}}buzz}}usr|{{bin}}}} |
|
|
test = [tokens.TemplateOpen(), tokens.TemplateOpen(), |
|
|
test = [tokens.TemplateOpen(), tokens.TemplateOpen(), |
|
|
tokens.TemplateOpen(), tokens.TemplateOpen(), |
|
|
tokens.TemplateOpen(), tokens.TemplateOpen(), |
|
|
tokens.Text(text="foo"), tokens.TemplateClose(), |
|
|
tokens.Text(text="foo"), tokens.TemplateClose(), |
|
@@ -224,5 +225,37 @@ class TestBuilder(TreeEqualityTestCase): |
|
|
showkey=False)])]) |
|
|
showkey=False)])]) |
|
|
self.assertWikicodeEqual(valid, self.builder.build(test)) |
|
|
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}}}<!--h-->]]{{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__": |
|
|
if __name__ == "__main__": |
|
|
unittest.main(verbosity=2) |
|
|
unittest.main(verbosity=2) |