summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter A. Bigot <pabigot@users.sourceforge.net>2010-05-29 16:43:30 -0500
committerPeter A. Bigot <pabigot@users.sourceforge.net>2010-05-29 16:43:30 -0500
commit34a09a640f2c6c8d0fdfaa9e1e8b52fe7d797b4f (patch)
treee467624015c1035fe5f35eca81464e915da4de55
parentdb34f6487f8e29eb585aa7812066ad616a525535 (diff)
New test for nested choice/sequence
-rw-r--r--tests/trac/test-trac-0033a.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/trac/test-trac-0033a.py b/tests/trac/test-trac-0033a.py
new file mode 100644
index 0000000..66f3902
--- /dev/null
+++ b/tests/trac/test-trac-0033a.py
@@ -0,0 +1,54 @@
+import pyxb.binding.generate
+import pyxb.utils.domutils
+from xml.dom import Node
+
+import os.path
+xsd='''<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+<xs:complexType name="tAddress">
+ <xs:choice>
+ <xs:sequence>
+ <xs:element name="Line1" type="xs:string"/>
+ <xs:element name="Line2" type="xs:string"/>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:element name="Missing" type="xs:string"/>
+ </xs:sequence>
+ </xs:choice>
+</xs:complexType>
+<xs:complexType name="tOther">
+ <xs:sequence>
+ <xs:element name="Header" type="xs:string"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:element name="Special" type="tAddress"/>
+ <xs:element name="Common" type="tAddress" minOccurs="0"/>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:element name="Common" type="tAddress"/>
+ </xs:sequence>
+ </xs:choice>
+ </xs:sequence>
+</xs:complexType>
+<xs:element name="elt" type="tOther"/>
+</xs:schema>'''
+
+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 TestTrac0033a (unittest.TestCase):
+ def test (self):
+ xml = '<elt><Header/><Common><Line1/><Line2/></Common></elt>'
+ instance = CreateFromDocument(xml)
+
+if __name__ == '__main__':
+ unittest.main()
+