Removed 'sources' from model.Interface. It is covered by metadata now.
[zeroinstall.git] / tests / testqdom.py
blobb35e858888111e16a9ffd2caaea5c79b88943ec2
1 #!/usr/bin/env python2.3
2 import sys, tempfile, os, shutil
3 from StringIO import StringIO
4 import unittest
6 sys.path.insert(0, '..')
8 from zeroinstall.injector import qdom
10 def parseString(s):
11 return qdom.parse(StringIO(s))
13 class TestQDom(unittest.TestCase):
14 def testSimple(self):
15 root = parseString('<?xml version="1.0"?><root/>')
16 assert root.name == 'root'
17 assert root.uri == None
18 assert root.content == ''
20 def testText(self):
21 root = parseString('<?xml version="1.0"?><root> Hi </root>')
22 assert root.name == 'root'
23 assert root.uri == None
24 assert root.content == 'Hi'
25 assert root.childNodes == []
27 def testNS(self):
28 root = parseString('<?xml version="1.0"?>' +
29 '<x:root xmlns:x="http://myns.com/foo"/>')
30 assert root.name == 'root'
31 assert root.uri == 'http://myns.com/foo'
32 assert root.content == ''
33 assert root.childNodes == []
35 def testAttrs(self):
36 root = parseString('<?xml version="1.0"?>' +
37 '<root x:foo="bar" bar="baz" xmlns:x="http://myns.com/foo"/>')
38 assert root.name == 'root'
39 assert root.uri == None
40 assert root.content == ''
41 assert root.childNodes == []
43 assert root.attrs.get('http://myns.com/foo foo') == 'bar'
44 assert root.attrs.get('bar') == 'baz'
46 def testNested(self):
47 root = parseString('<?xml version="1.0"?><root>' +
48 '<name>Bob</name><age>3</age></root>')
49 assert root.name == 'root'
50 assert root.uri == None
51 assert root.content == ''
52 assert len(root.childNodes) == 2
54 assert root.childNodes[0].name == 'name'
55 assert root.childNodes[0].uri == None
56 assert root.childNodes[0].content == 'Bob'
57 assert root.childNodes[0].childNodes == []
59 assert root.childNodes[1].name == 'age'
60 assert root.childNodes[1].uri == None
61 assert root.childNodes[1].content == '3'
62 assert root.childNodes[1].childNodes == []
64 def testStr(self):
65 root = parseString('<?xml version="1.0"?><root>' +
66 '<sub x="2">hi</sub><empty/></root>')
67 assert 'root' in str(root)
69 suite = unittest.makeSuite(TestQDom)
70 if __name__ == '__main__':
71 sys.argv.append('-v')
72 unittest.main()