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()