diff emeraldtree/tests/test_HTMLTreeBuilder.py @ 51:847897e5fab8

HTMLTreeBuilder - Make namespace aware, add testcases
author Bastian Blank <bblank@thinkmo.de>
date Sun, 21 Sep 2008 11:01:19 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emeraldtree/tests/test_HTMLTreeBuilder.py	Sun Sep 21 11:01:19 2008 +0200
@@ -0,0 +1,49 @@
+import py.test
+from emeraldtree.ElementTree import *
+from emeraldtree.HTMLTreeBuilder import *
+
+def serialize(elem, **options):
+    from cStringIO import StringIO
+    file = StringIO()
+    tree = ElementTree(elem)
+    tree.write(file, **options)
+    return file.getvalue()
+
+def test_HTMLParser_simple1():
+    elem = HTML('<a></a>')
+    assert elem.tag.name == 'a'
+    assert len(elem) == 0
+
+def test_XMLParser_simple2():
+    elem = HTML('<a><b /></a>')
+    assert elem.tag.name == 'a'
+    assert len(elem) == 1
+    assert elem[0].tag.name == 'b'
+    assert len(elem[0]) == 0
+
+def test_XMLParser_text1():
+    elem = HTML('<a>b</a>')
+    assert elem.tag.name == 'a'
+    assert isinstance(elem, Element)
+    assert len(elem) == 1
+    assert elem[0] == 'b'
+    assert isinstance(elem[0], unicode)
+
+def test_XMLParser_text2():
+    elem = HTML('<a>b<c>d</c>d</a>')
+    assert elem.tag.name == 'a'
+    assert len(elem) == 3
+    assert elem[0] == 'b'
+    assert elem[1].tag.name == 'c'
+    assert elem[2] == 'd'
+
+def test_HTMLParser_ignoreend():
+    elem = HTML('<br>')
+    assert elem.tag.name == 'br'
+    assert len(elem) == 0
+
+    elem = HTML('<br></br>')
+    assert elem.tag.name == 'br'
+    assert len(elem) == 0
+
+