1.1 --- a/tests/nodes.py Tue May 17 15:16:43 2005 +0000
1.2 +++ b/tests/nodes.py Tue May 17 16:07:59 2005 +0000
1.3 @@ -2,81 +2,101 @@
1.4
1.5 "Test of elements and attribute interfaces."
1.6
1.7 -import libxml2dom
1.8 +import libxml2macro as n_
1.9 +
1.10 +try:
1.11 + do_not_have_libxml2macro = n_
1.12 + import libxml2dom
1.13 + use_libxml2dom = 1
1.14 +except NameError:
1.15 + use_libxml2dom = 0
1.16
1.17 -d = libxml2dom.parseString("<ddd:doc xmlns:ddd='http://ddd'/>")
1.18 -e = d.xpath("*")[0]
1.19 -assert e.parentNode == d
1.20 -assert e.namespaceURI == "http://ddd"
1.21 -assert e.nodeName == e.tagName == "ddd:doc"
1.22 -assert e.localName == "doc"
1.23 -print d.toString()
1.24 +if __name__ == "__main__":
1.25 + import sys
1.26 +
1.27 + s = "<ddd:doc xmlns:ddd='http://ddd'/>"
1.28 +
1.29 + if use_libxml2dom:
1.30 + n_d = libxml2dom.parseString(s)
1.31 + else:
1.32 + n_d = parseString(s)
1.33
1.34 -e.setAttributeNS("http://xxx", "xxx:x", "y")
1.35 -assert e.getAttributeNS("http://xxx", "x") == "y"
1.36 -l = e.xpath("@*")
1.37 -assert len(l) == 1
1.38 -a = l[0]
1.39 -assert a.parentNode == e
1.40 -assert a.namespaceURI == "http://xxx"
1.41 -assert a.nodeName == "xxx:x"
1.42 -assert a.localName == "x"
1.43 -assert a.nodeValue == a.value == "y"
1.44 -print d.toString()
1.45 + n_e = n_d.xpath("*")[0]
1.46 + assert n_e.parentNode == n_d
1.47 + assert n_e.namespaceURI == "http://ddd"
1.48 + assert n_e.nodeName == n_e.tagName == "ddd:doc"
1.49 + assert n_e.localName == "doc"
1.50 + print n_d.toString()
1.51
1.52 -a2 = d.createAttributeNS("http://aaa", "aaa:a")
1.53 -a2.nodeValue = "b"
1.54 -assert a2.namespaceURI == "http://aaa"
1.55 -assert a2.nodeName == "aaa:a"
1.56 -assert a2.localName == "a"
1.57 -assert a2.nodeValue == a2.value == "b"
1.58 -print d.toString()
1.59 + n_e.setAttributeNS("http://xxx", "xxx:x", "y")
1.60 + assert n_e.getAttributeNS("http://xxx", "x") == "y"
1.61 + l = n_e.xpath("@*")
1.62 + assert len(l) == 1
1.63 + n_a = l[0]
1.64 + assert n_a.parentNode == n_e
1.65 + assert n_a.namespaceURI == "http://xxx"
1.66 + assert n_a.nodeName == "xxx:x"
1.67 + assert n_a.localName == "x"
1.68 + assert n_a.nodeValue == n_a.value == "y"
1.69 + print n_d.toString()
1.70
1.71 -e.setAttributeNodeNS(a2)
1.72 -l2 = e.xpath("@*")
1.73 -assert len(l2) == 2
1.74 -print d.toString()
1.75 + n_a2 = n_d.createAttributeNS("http://aaa", "aaa:a")
1.76 + n_a2.nodeValue = "b"
1.77 + assert n_a2.namespaceURI == "http://aaa"
1.78 + assert n_a2.nodeName == "aaa:a"
1.79 + assert n_a2.localName == "a"
1.80 + assert n_a2.nodeValue == n_a2.value == "b"
1.81 + print n_d.toString()
1.82
1.83 -e.setAttributeNS("http://ccc", "ccc:c", "d")
1.84 -assert e.getAttributeNS("http://ccc", "c") == "d"
1.85 -l3 = e.xpath("@*")
1.86 -assert len(l3) == 3
1.87 -e.setAttribute("p", "q")
1.88 -assert e.getAttribute("p") == "q"
1.89 -l4 = e.xpath("@*")
1.90 -assert len(l4) == 4
1.91 -al = e.attributes
1.92 -assert len(al.items()) == 4
1.93 -a3 = al.getNamedItemNS("http://ccc", "c")
1.94 -assert a3.namespaceURI == "http://ccc"
1.95 -assert a3.nodeName == "ccc:c"
1.96 -assert a3.localName == "c"
1.97 -assert a3.nodeValue == "d"
1.98 -print d.toString()
1.99 + n_e.setAttributeNodeNS(n_a2)
1.100 + l2 = n_e.xpath("@*")
1.101 + assert len(l2) == 2
1.102 + print n_d.toString()
1.103 +
1.104 + n_e.setAttributeNS("http://ccc", "ccc:c", "d")
1.105 + assert n_e.getAttributeNS("http://ccc", "c") == "d"
1.106 + l3 = n_e.xpath("@*")
1.107 + assert len(l3) == 3
1.108 + n_e.setAttribute("p", "q")
1.109 + assert n_e.getAttribute("p") == "q"
1.110 + l4 = n_e.xpath("@*")
1.111 + assert len(l4) == 4
1.112 + al = n_e.attributes
1.113 + assert len(al.items()) == 4
1.114 +
1.115 + if use_libxml2dom:
1.116 + n_a3 = al.getNamedItemNS("http://ccc", "c")
1.117 + assert n_a3.namespaceURI == "http://ccc"
1.118 + assert n_a3.nodeName == "ccc:c"
1.119 + assert n_a3.localName == "c"
1.120 + assert n_a3.nodeValue == "d"
1.121 + print n_d.toString()
1.122
1.123 -a4 = e.createAttribute("m")
1.124 -a4.nodeValue = "n"
1.125 -assert a4.namespaceURI == None
1.126 -assert a4.nodeName == "m"
1.127 -assert a4.localName == "m"
1.128 -assert a4.nodeValue == a4.value == "n"
1.129 -print d.toString()
1.130 + n_a4 = n_e.createAttribute("m")
1.131 + n_a4.nodeValue = "n"
1.132 + assert n_a4.namespaceURI == None
1.133 + assert n_a4.nodeName == "m"
1.134 + assert n_a4.localName == "m"
1.135 + assert n_a4.nodeValue == n_a4.value == "n"
1.136 + print n_d.toString()
1.137
1.138 -a4_old = al.setNamedItem(a4)
1.139 -assert a4_old == None
1.140 -assert len(al.items()) == 5
1.141 -assert e.getAttribute("m") == "n"
1.142 -al.removeNamedItem("m")
1.143 -assert not e.hasAttribute("m")
1.144 -assert len(al.items()) == 4
1.145 -e.removeAttributeNS("http://ccc", "c")
1.146 -assert not e.hasAttributeNS("http://ccc", "c")
1.147 -l5 = e.xpath("@*")
1.148 -assert len(l5) == 3
1.149 -e.removeAttribute("p")
1.150 -assert not e.hasAttribute("p")
1.151 -l6 = e.xpath("@*")
1.152 -assert len(l6) == 2
1.153 -print d.toString()
1.154 + if use_libxml2dom:
1.155 + n_a4_old = al.setNamedItem(n_a4)
1.156 + assert n_a4_old == None
1.157 + assert len(al.items()) == 5
1.158 + assert n_e.getAttribute("m") == "n"
1.159 + al.removeNamedItem("m")
1.160 + assert not n_e.hasAttribute("m")
1.161 + assert len(al.items()) == 4
1.162 +
1.163 + n_e.removeAttributeNS("http://ccc", "c")
1.164 + assert not n_e.hasAttributeNS("http://ccc", "c")
1.165 + l5 = n_e.xpath("@*")
1.166 + assert len(l5) == 3
1.167 + n_e.removeAttribute("p")
1.168 + assert not n_e.hasAttribute("p")
1.169 + l6 = n_e.xpath("@*")
1.170 + assert len(l6) == 2
1.171 + print n_d.toString()
1.172
1.173 # vim: tabstop=4 expandtab shiftwidth=4