def testStrict(self): self.assertEqual(XSI.ProcessTypeAttribute(), XSI.PT_strict) xmls = '<wildcard>%s</wildcard>' % (self.ConflictString, ) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.BadDocumentError, CreateFromDOM, dom) xmls = '<wildcard>%s</wildcard>' % (self.ConflictStringInteger, ) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.BadDocumentError, CreateFromDOM, dom) xmls = '<wildcard>%s</wildcard>' % (self.BogusTypedElement, ) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) xmls = '<wildcard>%s</wildcard>' % (self.BogusTypedInteger, ) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) xmls = self.makeWC(self.BaseUntyped) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDOM, dom) xmls = self.makeWC(self.BaseForeign) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.BadDocumentError, CreateFromDOM, dom) xmls = self.makeWC(self.BaseUnknown) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.BadDocumentError, CreateFromDOM, dom)
def testStrict(self): self.assertEqual(XSI.ProcessTypeAttribute(), XSI.PT_strict) xmls = '<wildcard>%s</wildcard>' % (self.ConflictString, ) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.BadDocumentError, CreateFromDOM, dom) xmls = '<wildcard>%s</wildcard>' % (self.ConflictStringInteger, ) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.BadDocumentError, CreateFromDOM, dom) xmls = '<wildcard>%s</wildcard>' % (self.BogusTypedElement, ) # This only raises with saxer, which treats the bogus xsi:type as # a content failure. With saxdom and minidom, that error gets # lost by the code that thinks it's ok to pass a DOM node where # no binding could be created. This should be reconciled. self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) xmls = '<wildcard>%s</wildcard>' % (self.BogusTypedInteger, ) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) xmls = self.makeWC(self.BaseUntyped) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDOM, dom) xmls = self.makeWC(self.BaseForeign) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.BadDocumentError, CreateFromDOM, dom) xmls = self.makeWC(self.BaseUnknown) self.assertRaises(pyxb.BadDocumentError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.BadDocumentError, CreateFromDOM, dom)
def tearDown(self): self.__basis_log.level = self.__basis_loglevel XSI.ProcessTypeAttribute(XSI.PT_strict)
def testSkip(self): # Skip won't convert DOM nodes self.__basis_log.level = logging.ERROR self.assertEqual(XSI.ProcessTypeAttribute(), XSI.PT_strict) XSI.ProcessTypeAttribute(XSI.PT_skip) # skip uses element name to force to integer, which content doesn't match xmls = '<wildcard>%s</wildcard>' % (self.ConflictString, ) self.assertRaises(pyxb.SimpleTypeValueError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.SimpleTypeValueError, CreateFromDOM, dom) xmls = '<wildcard>%s</wildcard>' % (self.ConflictStringInteger, ) wc = CreateFromDocument(xmls) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, Integer)) self.assertEqual(self.AnInteger, instance.child) dom = pyxb.utils.domutils.StringToDOM(xmls) wc = CreateFromDOM(dom) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, Integer)) self.assertEqual(self.AnInteger, instance.child) xmls = '<wildcard>%s</wildcard>' % (self.BogusTypedElement, ) wc = CreateFromDocument(xmls) instance = wc.wildcardElements()[0] self.assertFalse( isinstance(instance, pyxb.binding.basis._TypeBinding_mixin)) dom = pyxb.utils.domutils.StringToDOM(xmls) wc = CreateFromDOM(dom) instance = wc.wildcardElements()[0] self.assertFalse( isinstance(instance, pyxb.binding.basis._TypeBinding_mixin)) xmls = '<wildcard>%s</wildcard>' % (self.BogusTypedInteger, ) wc = CreateFromDocument(xmls) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, Integer)) self.assertTrue(isinstance(instance.child, long)) self.assertEqual(self.AnInteger, instance.child) dom = pyxb.utils.domutils.StringToDOM(xmls) wc = CreateFromDOM(dom) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, Integer)) self.assertTrue(isinstance(instance.child, long)) self.assertEqual(self.AnInteger, instance.child) xmls = self.makeWC(self.BaseUntyped) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDOM, dom) xmls = self.makeWC(self.BaseString) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDOM, dom) xmls = self.makeWC(self.BaseInteger) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDOM, dom) xmls = self.makeWC(self.BaseForeign) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDOM, dom) xmls = self.makeWC(self.BaseUnknown) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDOM, dom)
def testLax(self): # Lax won't convert DOM nodes self.__basis_log.level = logging.ERROR self.assertEqual(XSI.ProcessTypeAttribute(), XSI.PT_strict) XSI.ProcessTypeAttribute(XSI.PT_lax) xmls = '<wildcard>%s</wildcard>' % (self.ConflictString, ) wc = CreateFromDocument(xmls) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, String)) self.assertEqual(self.NotAnInteger, instance.child) dom = pyxb.utils.domutils.StringToDOM(xmls) wc = CreateFromDOM(dom) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, String)) self.assertEqual(self.NotAnInteger, instance.child) xmls = '<wildcard>%s</wildcard>' % (self.ConflictStringInteger, ) wc = CreateFromDocument(xmls) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, String)) self.assertEqual('%d' % (self.AnInteger, ), instance.child) dom = pyxb.utils.domutils.StringToDOM(xmls) wc = CreateFromDOM(dom) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, String)) self.assertEqual('%d' % (self.AnInteger, ), instance.child) xmls = '<wildcard>%s</wildcard>' % (self.BogusTypedElement, ) wc = CreateFromDocument(xmls) instance = wc.wildcardElements()[0] self.assertFalse( isinstance(instance, pyxb.binding.basis._TypeBinding_mixin)) dom = pyxb.utils.domutils.StringToDOM(xmls) wc = CreateFromDOM(dom) instance = wc.wildcardElements()[0] self.assertFalse( isinstance(instance, pyxb.binding.basis._TypeBinding_mixin)) xmls = '<wildcard>%s</wildcard>' % (self.BogusTypedInteger, ) wc = CreateFromDocument(xmls) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, Integer)) self.assertTrue(isinstance(instance.child, long)) self.assertEqual(self.AnInteger, instance.child) dom = pyxb.utils.domutils.StringToDOM(xmls) wc = CreateFromDOM(dom) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, Integer)) self.assertTrue(isinstance(instance.child, long)) self.assertEqual(self.AnInteger, instance.child) xmls = self.makeWC(self.BaseUntyped) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDOM, dom) xmls = self.makeWC(self.BaseForeign) wc = CreateFromDocument(xmls) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, Foreign)) self.assertEqual(self.NotAnInteger, instance.child) dom = pyxb.utils.domutils.StringToDOM(xmls) wc = CreateFromDOM(dom) instance = wc.wildcardElements()[0] self.assertTrue(isinstance(instance, Foreign)) self.assertEqual(self.NotAnInteger, instance.child) xmls = self.makeWC(self.BaseUnknown) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDocument, xmls) dom = pyxb.utils.domutils.StringToDOM(xmls) self.assertRaises(pyxb.AbstractInstantiationError, CreateFromDOM, dom)
def tearDown(self): XSI.ProcessTypeAttribute(XSI.PT_strict)