File: test-recursive.py

package info (click to toggle)
pyxb 1.2.6%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 42,668 kB
  • sloc: python: 239,437; sh: 905; xml: 690; makefile: 60
file content (73 lines) | stat: -rw-r--r-- 3,051 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# -*- coding: utf-8 -*-
import logging
if __name__ == '__main__':
    logging.basicConfig()
_log = logging.getLogger(__name__)
import pyxb
import pyxb.binding.generate
import pyxb.utils.domutils

from xml.dom import Node

import os.path
schema_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../schemas/test-recursive.xsd'))
code = pyxb.binding.generate.GeneratePython(schema_location=schema_path)

rv = compile(code, 'test', 'exec')
eval(rv)

import unittest

class TestXSIType (unittest.TestCase):
    def testSingleton (self):
        xml = '<node><data>singleton</data></node>'
        doc = pyxb.utils.domutils.StringToDOM(xml)
        instance = node.createFromDOM(doc.documentElement)
        self.assertEqual('singleton', instance.data)
        self.assertTrue(instance.left is None)
        self.assertTrue(instance.right is None)

        instance = node('singleton')
        self.assertEqual('singleton', instance.data)
        self.assertTrue(instance.left is None)
        self.assertTrue(instance.right is None)

    def testLeftOnly (self):
        xml = '<node><data>root</data><left><data>left</data></left></node>'
        doc = pyxb.utils.domutils.StringToDOM(xml)
        instance = node.createFromDOM(doc.documentElement)
        self.assertEqual('root', instance.data)
        left = instance.left
        self.assertTrue(left is not None)
        self.assertEqual('left', left.data)
        self.assertTrue(instance.right is None)

        instance = node('root', node('left'))
        self.assertEqual('root', instance.data)
        left = instance.left
        self.assertTrue(left is not None)
        self.assertEqual('left', left.data)
        self.assertTrue(instance.right is None)

    def testFiver (self):
        instance = node('root', node('left1', node('left2'), node('leftright')), node('right1', node('rightleft')))
        xml = '<node><data>root</data><left><data>left1</data><left><data>left2</data></left><right><data>leftright</data></right></left><right><data>right1</data><left><data>rightleft</data></left></right></node>'
        doc = pyxb.utils.domutils.StringToDOM(xml)
        instance = node.createFromDOM(doc.documentElement)
        self.assertEqual('root', instance.data)
        self.assertEqual('left1', instance.left.data)
        self.assertEqual('left2', instance.left.left.data)
        self.assertEqual('leftright', instance.left.right.data)
        self.assertEqual('right1', instance.right.data)
        self.assertEqual('rightleft', instance.right.left.data)

        instance = node('root', node('left1', node('left2'), node('leftright')), node('right1', node('rightleft')))
        self.assertEqual('root', instance.data)
        self.assertEqual('left1', instance.left.data)
        self.assertEqual('left2', instance.left.left.data)
        self.assertEqual('leftright', instance.left.right.data)
        self.assertEqual('right1', instance.right.data)
        self.assertEqual('rightleft', instance.right.left.data)

if __name__ == '__main__':
    unittest.main()