Package simplexmlapi :: Package tests :: Module test_api
[hide private]
[frames] | no frames]

Source Code for Module simplexmlapi.tests.test_api

 1  #!/usr/bin/env python 
 2   
 3  import unittest 
 4   
 5  TESTDOC = """ 
 6  <node1 abc="1" b="2" subnode="subnodeval"> 
 7      <subnode> 
 8          Subnode 1 value. 
 9      </subnode> 
10      <subnode c="3"> 
11          Subnode 2 value. 
12          <subsubnode> 
13              <thing>ThingVal</thing> 
14              <thing x="y"/> 
15          </subsubnode> 
16      </subnode> 
17      <othernode>Other text.</othernode> 
18  </node1> 
19  """ 
20   
21  TESTCFG = dict( 
22      val1 = "abc", 
23      val2 = "subnode__0", 
24      val3 = "othernode", 
25      val4 = "subnode__a", 
26      val5 = "subnode.c", 
27      val6 = "subnode__1.subsubnode.thing", 
28      val7 = "subnode__1.subsubnode.thing__1.x" 
29  ) 
30   
31  from simplexmlapi import * 
32   
33 -class TestAPI(unittest.TestCase):
34 - def setUp(self):
35 self.xml = SimpleXmlApi(map=TESTCFG, source=TESTDOC)
36
37 - def test_traversal(self):
38 self.assertEqual(self.xml._traverse('abc'), '1') 39 self.assertEqual(self.xml._traverse( 40 'subnode__1.subsubnode.thing__1.x'), 'y')
41
42 - def test_properties(self):
43 self.assertEqual(self.xml.val1, '1') 44 self.assertEqual(self.xml.val4, 'subnodeval')
45
46 - def test_attrfailover(self):
47 self.assertEqual(self.xml.subnode._, 'Subnode 1 value.') 48 self.assertEqual(self.xml.subnode__1.c._, '3')
49
50 - def test_newProperties(self):
51 self.xml.add_mapping('battr', 'b') 52 self.assertEqual(self.xml.battr, '2')
53
54 - def test_factory(self):
55 xml = loads(TESTDOC, map=TESTCFG) 56 self.assertEqual(type(xml), SimpleXmlApi)
57
58 - def test_subclass(self):
59 class SampleApi(SimpleXmlApi): 60 _map = TESTCFG
61 xml = loads(TESTDOC, cls=SampleApi) 62 self.assertEqual(xml.val1, '1') 63 self.assertEqual(xml.val4, 'subnodeval')
64 65 if __name__=="__main__": 66 unittest.main() 67