| @@ -201,11 +201,108 @@ class TestBuilder(TreeEqualityTestCase): | |||||
| def test_tag(self): | def test_tag(self): | ||||
| """tests for building Tag nodes""" | """tests for building Tag nodes""" | ||||
| tests = [ | tests = [ | ||||
| # <ref></ref> | |||||
| ([tokens.TagOpenOpen(), tokens.Text(text="ref"), | ([tokens.TagOpenOpen(), tokens.Text(text="ref"), | ||||
| tokens.TagCloseOpen(padding=""), tokens.TagOpenClose(), | tokens.TagCloseOpen(padding=""), tokens.TagOpenClose(), | ||||
| tokens.Text(text="ref"), tokens.TagCloseClose()], | tokens.Text(text="ref"), tokens.TagCloseClose()], | ||||
| wrap([Tag(wraptext("ref"), wrap([]), [], True, False, "", | |||||
| wraptext("ref"))])), | |||||
| wrap([Tag(wraptext("ref"), wrap([]), | |||||
| closing_tag=wraptext("ref"))])), | |||||
| # <ref name></ref> | |||||
| ([tokens.TagOpenOpen(), tokens.Text(text="ref"), | |||||
| tokens.TagAttrStart(pad_first=" ", pad_before_eq="", | |||||
| pad_after_eq=""), | |||||
| tokens.Text(text="name"), tokens.TagCloseOpen(padding=""), | |||||
| tokens.TagOpenClose(), tokens.Text(text="ref"), | |||||
| tokens.TagCloseClose()], | |||||
| wrap([Tag(wraptext("ref"), wrap([]), | |||||
| attrs=[Attribute(wraptext("name"))])])), | |||||
| # <ref name="abc" /> | |||||
| ([tokens.TagOpenOpen(), tokens.Text(text="ref"), | |||||
| tokens.TagAttrStart(pad_first=" ", pad_before_eq="", | |||||
| pad_after_eq=""), | |||||
| tokens.Text(text="name"), tokens.TagAttrEquals(), | |||||
| tokens.TagAttrQuote(), tokens.Text(text="abc"), | |||||
| tokens.TagCloseSelfclose(padding=" ")], | |||||
| wrap([Tag(wraptext("ref"), | |||||
| attrs=[Attribute(wraptext("name"), wraptext("abc"))], | |||||
| self_closing=True, padding=" ")])), | |||||
| # <br/> | |||||
| ([tokens.TagOpenOpen(), tokens.Text(text="br"), | |||||
| tokens.TagCloseSelfclose(padding="")], | |||||
| wrap([Tag(wraptext("br"), self_closing=True)])), | |||||
| # <li> | |||||
| ([tokens.TagOpenOpen(), tokens.Text(text="li"), | |||||
| tokens.TagCloseSelfclose(padding="", implicit=True)], | |||||
| wrap([Tag(wraptext("li"), self_closing=True, implicit=True)])), | |||||
| # </br> | |||||
| ([tokens.TagOpenOpen(invalid=True), tokens.Text(text="br"), | |||||
| tokens.TagCloseSelfclose(padding="", implicit=True)], | |||||
| wrap([Tag(wraptext("br"), self_closing=True, invalid=True, | |||||
| implicit=True)])), | |||||
| # </br/> | |||||
| ([tokens.TagOpenOpen(invalid=True), tokens.Text(text="br"), | |||||
| tokens.TagCloseSelfclose(padding="")], | |||||
| wrap([Tag(wraptext("br"), self_closing=True, invalid=True)])), | |||||
| # <ref name={{abc}} foo="bar {{baz}}" abc={{de}}f ghi=j{{k}}{{l}} | |||||
| # mno = "{{p}} [[q]] {{r}}">[[Source]]</ref> | |||||
| ([tokens.TagOpenOpen(), tokens.Text(text="ref"), | |||||
| tokens.TagAttrStart(pad_first=" ", pad_before_eq="", | |||||
| pad_after_eq=""), | |||||
| tokens.Text(text="name"), tokens.TagAttrEquals(), | |||||
| tokens.TemplateOpen(), tokens.Text(text="abc"), | |||||
| tokens.TemplateClose(), | |||||
| tokens.TagAttrStart(pad_first=" ", pad_before_eq="", | |||||
| pad_after_eq=""), | |||||
| tokens.Text(text="foo"), tokens.TagAttrEquals(), | |||||
| tokens.TagAttrQuote(), tokens.Text(text="bar "), | |||||
| tokens.TemplateOpen(), tokens.Text(text="baz"), | |||||
| tokens.TemplateClose(), | |||||
| tokens.TagAttrStart(pad_first=" ", pad_before_eq="", | |||||
| pad_after_eq=""), | |||||
| tokens.Text(text="abc"), tokens.TagAttrEquals(), | |||||
| tokens.TemplateOpen(), tokens.Text(text="de"), | |||||
| tokens.TemplateClose(), tokens.Text(text="f"), | |||||
| tokens.TagAttrStart(pad_first=" ", pad_before_eq="", | |||||
| pad_after_eq=""), | |||||
| tokens.Text(text="ghi"), tokens.TagAttrEquals(), | |||||
| tokens.Text(text="j"), tokens.TemplateOpen(), | |||||
| tokens.Text(text="k"), tokens.TemplateClose(), | |||||
| tokens.TemplateOpen(), tokens.Text(text="l"), | |||||
| tokens.TemplateClose(), | |||||
| tokens.TagAttrStart(pad_first=" \n ", pad_before_eq=" ", | |||||
| pad_after_eq=" "), | |||||
| tokens.Text(text="mno"), tokens.TagAttrEquals(), | |||||
| tokens.TagAttrQuote(), tokens.TemplateOpen(), | |||||
| tokens.Text(text="p"), tokens.TemplateClose(), | |||||
| tokens.Text(text=" "), tokens.WikilinkOpen(), | |||||
| tokens.Text(text="q"), tokens.WikilinkClose(), | |||||
| tokens.Text(text=" "), tokens.TemplateOpen(), | |||||
| tokens.Text(text="r"), tokens.TemplateClose(), | |||||
| tokens.TagCloseOpen(padding=""), tokens.WikilinkOpen(), | |||||
| tokens.Text(text="Source"), tokens.WikilinkClose(), | |||||
| tokens.TagOpenClose(), tokens.Text(text="ref"), | |||||
| tokens.TagCloseClose()], | |||||
| wrap([Tag(wraptext("ref"), wrap([Wikilink(wraptext("Source"))]), [ | |||||
| Attribute(wraptext("name"), | |||||
| wrap([Template(wraptext("abc"))]), False), | |||||
| Attribute(wraptext("foo"), wrap([Text("bar "), | |||||
| Template(wraptext("baz"))]), pad_first=" "), | |||||
| Attribute(wraptext("abc"), wrap([Template(wraptext("de")), | |||||
| Text("f")]), False), | |||||
| Attribute(wraptext("ghi"), wrap([Text("j"), | |||||
| Template(wraptext("k")), | |||||
| Template(wraptext("l"))]), False), | |||||
| Attribute(wraptext("mno"), wrap([Template(wraptext("p")), | |||||
| Text(" "), Wikilink(wraptext("q")), Text(" "), | |||||
| Template(wraptext("r"))]), True, " \n ", " ", | |||||
| " ")])])), | |||||
| ] | ] | ||||
| for test, valid in tests: | for test, valid in tests: | ||||
| self.assertWikicodeEqual(valid, self.builder.build(test)) | self.assertWikicodeEqual(valid, self.builder.build(test)) | ||||