diff options
author | pab <bigot@acm.org> | 2010-01-27 17:38:52 -0700 |
---|---|---|
committer | pab <bigot@acm.org> | 2010-01-27 17:38:52 -0700 |
commit | 5a301b2b05dd3c6dd6ae1ce8d56f659c080b97d2 (patch) | |
tree | 5a08653f467be64bd951eea7520a1175a1486271 /tests | |
parent | 0817aa47e0b12ec430edf7a905a48ec90394872e (diff) |
First pass at addressing trac #75
Diffstat (limited to 'tests')
-rw-r--r-- | tests/trac/test-trac-0075.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tests/trac/test-trac-0075.py b/tests/trac/test-trac-0075.py new file mode 100644 index 0000000..2ca784c --- /dev/null +++ b/tests/trac/test-trac-0075.py @@ -0,0 +1,78 @@ +import pyxb.binding.generate +import pyxb.binding.datatypes as xs +import pyxb.binding.basis +import pyxb.binding.content +import pyxb.utils.domutils +import xml.dom.minidom + +import os.path +xsd='''<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> +<xs:simpleType name="tInner"> + <xs:restriction base="xs:string"/> +</xs:simpleType> +<xs:complexType name="tTop"> + <xs:sequence> + <xs:element name="inner" type="tInner"/> + </xs:sequence> +</xs:complexType> +<xs:element name="top" type="tTop"/> +</xs:schema>''' + +#file('schema.xsd', 'w').write(xsd) +code = pyxb.binding.generate.GeneratePython(schema_text=xsd) +#file('code.py', 'w').write(code) +#print code + +rv = compile(code, 'test', 'exec') +eval(rv) + +from pyxb.exceptions_ import * + +import unittest + +class TestTrac_0075 (unittest.TestCase): + def testGood (self): + xmls = '<top><inner>content</inner></top>' + instance = CreateFromDocument(xmls) + self.assertEqual('content', instance.inner) + + def testUnrecognizedElementError (self): + xmls = '<t0p><inner>content</inner></t0p>' + try: + instance = CreateFromDocument(xmls) + self.fail("Succeeded in creating from document with bad top level element") + except UnrecognizedElementError, e: + self.fail() + + def testNotAnElementError (self): + elt = tTop._UseForTag('inner') + self.assertTrue(isinstance(elt, pyxb.binding.content.ElementUse)) + try: + elt = tTop._UseForTag('notInner') + self.fail('Found non-existent inner element') + except NotAnElementError, e: + self.assertEqual('notInner', e.element_name) + self.assertEqual(tTop, e.containing_type) + + ''' + def testNotAnElementError2 (self): + + xmls = '<top><tInner>content</tInner></top>' + try: + instance = CreateFromDocument(xmls) + self.fail("Succeeded in creating from document with bad top level element") + except NotAnElementError, e: + self.fail() + + dom = xml.dom.minidom.parseString(xmls) + try: + instance = CreateFromDOM(dom) + self.fail("Succeeded in creating from document with bad top level element") + except NotAnElementError, e: + self.fail() + + ''' + +if __name__ == '__main__': + unittest.main() |