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>"
 | |
| 
 |