From elliot at rpath.com Wed Oct 20 16:18:59 2010
From: elliot at rpath.com (Elliot Peele)
Date: Wed, 20 Oct 2010 20:18:59 +0000
Subject: xobj: add test to enforce behaviour of nested collections
Message-ID: <201010202018.o9KKIxbH016038@scc.eng.rpath.com>
changeset: 2051a8128c6a
user: Elliot Peele
date: Wed, 20 Oct 2010 16:18:55 -0400
add test to enforce behaviour of nested collections
diff --git a/py/test/xobjtest.py b/py/test/xobjtest.py
--- a/py/test/xobjtest.py
+++ b/py/test/xobjtest.py
@@ -966,6 +966,60 @@
doc.foo._xobj.tag = None
self.failUnlessRaises(TypeError, xobj.toxml, doc.foo)
+ def testNestedLists(self):
+ xml = """\
+
+
+
+ Setup
+
+ foo.exe
+ bar.exe
+
+
+
+ Setup2
+
+
+ foo.exe
+ 12345
+
+
+ bar.exe
+ 23456
+
+
+
+
+"""
+
+ doc = xobj.parse(xml)
+
+ self.failUnless(hasattr(doc, 'msis'))
+ self.failUnless(hasattr(doc.msis, 'msi'))
+ self.failUnless(isinstance(doc.msis.msi, list))
+ self.failUnlessEqual(len(doc.msis.msi), 2)
+
+ msi0 = doc.msis.msi[0]
+
+ self.failUnlessEqual(msi0.name, 'Setup')
+ self.failUnless(hasattr(msi0, 'files'))
+ self.failUnless(hasattr(msi0.files, 'file'))
+ self.failUnless(isinstance(msi0.files.file, list))
+ self.failUnlessEqual(len(msi0.files.file), 2)
+
+ msi1 = doc.msis.msi[1]
+
+ self.failUnlessEqual(msi1.name, 'Setup2')
+ self.failUnless(hasattr(msi1, 'files'))
+ self.failUnless(hasattr(msi1.files, 'file'))
+ self.failUnless(isinstance(msi1.files.file, list))
+ self.failUnlessEqual(len(msi1.files.file), 2)
+ self.failUnlessEqual(msi1.files.file[0].name, 'foo.exe')
+ self.failUnlessEqual(msi1.files.file[0].uuid, '12345')
+ self.failUnlessEqual(msi1.files.file[1].name, 'bar.exe')
+ self.failUnlessEqual(msi1.files.file[1].uuid, '23456')
+
if __name__ == "__main__":
testsuite.main()