|
|
@@ -23,8 +23,8 @@ |
|
|
|
from __future__ import unicode_literals |
|
|
|
import unittest |
|
|
|
|
|
|
|
from mwparserfromhell.nodes import (Argument, Comment, Heading, HTMLEntity, |
|
|
|
Tag, Template, Text, Wikilink) |
|
|
|
from mwparserfromhell.nodes import (Argument, Comment, ExternalLink, Heading, |
|
|
|
HTMLEntity, Tag, Template, Text, Wikilink) |
|
|
|
from mwparserfromhell.nodes.extras import Attribute, Parameter |
|
|
|
from mwparserfromhell.parser import tokens |
|
|
|
from mwparserfromhell.parser.builder import Builder |
|
|
@@ -150,6 +150,48 @@ class TestBuilder(TreeEqualityTestCase): |
|
|
|
for test, valid in tests: |
|
|
|
self.assertWikicodeEqual(valid, self.builder.build(test)) |
|
|
|
|
|
|
|
def test_external_link(self): |
|
|
|
"""tests for building ExternalLink nodes""" |
|
|
|
tests = [ |
|
|
|
([tokens.ExternalLinkOpen(brackets=False), |
|
|
|
tokens.Text(text="http://example.com/"), |
|
|
|
tokens.ExternalLinkClose()], |
|
|
|
wrap([ExternalLink(wraptext("http://example.com/"), |
|
|
|
brackets=False)])), |
|
|
|
|
|
|
|
([tokens.ExternalLinkOpen(brackets=True), |
|
|
|
tokens.Text(text="http://example.com/"), |
|
|
|
tokens.ExternalLinkClose()], |
|
|
|
wrap([ExternalLink(wraptext("http://example.com/"))])), |
|
|
|
|
|
|
|
([tokens.ExternalLinkOpen(brackets=True), |
|
|
|
tokens.Text(text="http://example.com/"), |
|
|
|
tokens.ExternalLinkSeparator(), tokens.ExternalLinkClose()], |
|
|
|
wrap([ExternalLink(wraptext("http://example.com/"), wrap([]))])), |
|
|
|
|
|
|
|
([tokens.ExternalLinkOpen(brackets=True), |
|
|
|
tokens.Text(text="http://example.com/"), |
|
|
|
tokens.ExternalLinkSeparator(), tokens.Text(text="Example"), |
|
|
|
tokens.ExternalLinkClose()], |
|
|
|
wrap([ExternalLink(wraptext("http://example.com/"), |
|
|
|
wraptext("Example"))])), |
|
|
|
|
|
|
|
([tokens.ExternalLinkOpen(brackets=False), |
|
|
|
tokens.Text(text="http://example"), tokens.Text(text=".com/foo"), |
|
|
|
tokens.ExternalLinkClose()], |
|
|
|
wrap([ExternalLink(wraptext("http://example", ".com/foo"), |
|
|
|
brackets=False)])), |
|
|
|
|
|
|
|
([tokens.ExternalLinkOpen(brackets=True), |
|
|
|
tokens.Text(text="http://example"), tokens.Text(text=".com/foo"), |
|
|
|
tokens.ExternalLinkSeparator(), tokens.Text(text="Example"), |
|
|
|
tokens.Text(text=" Web Page"), tokens.ExternalLinkClose()], |
|
|
|
wrap([ExternalLink(wraptext("http://example", ".com/foo"), |
|
|
|
wraptext("Example", " Web Page"))])), |
|
|
|
] |
|
|
|
for test, valid in tests: |
|
|
|
self.assertWikicodeEqual(valid, self.builder.build(test)) |
|
|
|
|
|
|
|
def test_html_entity(self): |
|
|
|
"""tests for building HTMLEntity nodes""" |
|
|
|
tests = [ |
|
|
|