59 lines
1.4 KiB
Python
59 lines
1.4 KiB
Python
|
|
import py
|
|
|
|
class ns(py.xml.Namespace):
|
|
pass
|
|
|
|
def test_tag_with_text():
|
|
x = ns.hello("world")
|
|
u = unicode(x)
|
|
assert u == "<hello>world</hello>"
|
|
|
|
def test_class_identity():
|
|
assert ns.hello is ns.hello
|
|
|
|
def test_tag_with_text_and_attributes():
|
|
x = ns.some(name="hello", value="world")
|
|
assert x.attr.name == 'hello'
|
|
assert x.attr.value == 'world'
|
|
u = unicode(x)
|
|
assert u == '<some name="hello" value="world"/>'
|
|
|
|
def test_tag_with_subclassed_attr_simple():
|
|
class my(ns.hello):
|
|
class Attr(ns.hello.Attr):
|
|
hello="world"
|
|
x = my()
|
|
assert x.attr.hello == 'world'
|
|
assert unicode(x) == '<my hello="world"/>'
|
|
|
|
def test_tag_nested():
|
|
x = ns.hello(ns.world())
|
|
unicode(x) # triggers parentifying
|
|
assert x[0].parent is x
|
|
u = unicode(x)
|
|
assert u == '<hello><world/></hello>'
|
|
|
|
def test_tag_xmlname():
|
|
class my(ns.hello):
|
|
xmlname = 'world'
|
|
u = unicode(my())
|
|
assert u == '<world/>'
|
|
|
|
def test_tag_with_text_entity():
|
|
x = ns.hello('world & rest')
|
|
u = unicode(x)
|
|
assert u == "<hello>world & rest</hello>"
|
|
|
|
def test_tag_with_text_and_attributes_entity():
|
|
x = ns.some(name="hello & world")
|
|
assert x.attr.name == "hello & world"
|
|
u = unicode(x)
|
|
assert u == '<some name="hello & world"/>'
|
|
|
|
def test_raw():
|
|
x = ns.some(py.xml.raw("<p>literal</p>"))
|
|
u = unicode(x)
|
|
assert u == "<some><p>literal</p></some>"
|
|
|