def test_xml_resource_defuse(self): resource = XMLResource(self.vh_xml_file, defuse='never') self.assertEqual(resource.defuse, 'never') self.assertRaises(ValueError, XMLResource, self.vh_xml_file, defuse='all') self.assertRaises(ValueError, XMLResource, self.vh_xml_file, defuse=None) self.assertIsInstance(resource.root, etree_element) resource = XMLResource(self.vh_xml_file, defuse='always') self.assertIsInstance(resource.root, py_etree_element) xml_file = casepath('resources/with_entity.xml') self.assertIsInstance(XMLResource(xml_file), XMLResource) self.assertRaises(PyElementTree.ParseError, XMLResource, xml_file, defuse='always') xml_file = casepath('resources/unused_external_entity.xml') self.assertIsInstance(XMLResource(xml_file), XMLResource) self.assertRaises(PyElementTree.ParseError, XMLResource, xml_file, defuse='always') xml_file = casepath('resources/external_entity.xml') self.assertIsInstance(XMLResource(xml_file), XMLResource) self.assertRaises(PyElementTree.ParseError, XMLResource, xml_file, defuse='always')
def test_fetch_resource(self): wrong_path = casepath('resources/dummy_file.txt') self.assertRaises(XMLSchemaURLError, fetch_resource, wrong_path) right_path = casepath('resources/dummy file.txt') self.assertTrue(fetch_resource(right_path).endswith('dummy file.txt')) ambiguous_path = casepath('resources/dummy file #2.txt') self.assertTrue( fetch_resource(ambiguous_path).endswith('dummy file %232.txt')) res = urlopen(fetch_resource(ambiguous_path)) try: self.assertEqual(res.read(), b'DUMMY CONTENT') finally: res.close()
def test_issue_086(self): issue_086_xsd = casepath('issues/issue_086/issue_086.xsd') schema = self.schema_class(issue_086_xsd) group = schema.types['Foo'].content_type # issue_086-1.xml sequence simulation model = ModelVisitor(group) self.assertEqual(model.element, group[0]) self.check_advance_true(model) # <header> matching self.assertEqual(model.element, group[1][0][0]) # 'a' element self.check_advance_true(model) # <a> matching self.assertEqual(model.element, group[1][0][0]) # 'a' element self.check_advance_true(model) # <a> matching self.assertEqual(model.element, group[1][0][0]) # 'a' element self.check_advance_false(model) self.assertEqual(model.element, group[1][0][0]) # 'a' element self.check_advance_false(model) self.assertEqual(model.element, group[1][1][0]) # 'b' element self.check_advance_true(model) # <b> matching self.assertEqual(model.element, group[1][1][0]) # 'b' element self.check_advance_true(model) # <b> matching self.check_advance_false(model) self.assertEqual( model.element, group[1][0][0]) # 'a' element (choice group restarted) self.check_advance_false(model) self.check_advance_false(model) self.assertEqual(model.element, group[1][2][0]) # 'c' element self.check_advance_true(model) # <c> matching self.assertEqual(model.element, group[1][2][0]) # 'c' element self.check_advance_true(model) # <c> matching self.check_stop(model) # issue_086-2.xml sequence simulation model = ModelVisitor(group) self.check_advance_true(model) # <header> matching self.assertEqual(model.element, group[1][0][0]) # 'a' element self.check_advance_false(model) self.assertEqual(model.element, group[1][1][0]) # 'b' element self.check_advance_true(model) # <b> matching self.assertEqual(model.element, group[1][1][0]) # 'b' element self.check_advance_true(model) # <b> matching self.check_advance_false(model) self.assertEqual( model.element, group[1][0][0]) # 'a' element (choice group restarted) self.check_advance_false(model) self.check_advance_false(model) self.assertEqual(model.element, group[1][2][0]) # 'c' element self.check_advance_true(model) # <c> matching self.assertEqual(model.element, group[1][2][0]) # 'c' element self.check_advance_true(model) # <c> matching self.check_advance_false(model) self.assertEqual(model.element, group[1][0][0]) # 'a' element self.check_advance_true(model) # <a> matching self.assertEqual(model.element, group[1][0][0]) # 'a' element self.check_advance_true(model) # <a> matching self.assertEqual(model.element, group[1][0][0]) # 'a' element self.check_stop(model)
def setUpClass(cls): cls.vh_dir = casepath('examples/vehicles') cls.vh_xsd_file = casepath('examples/vehicles/vehicles.xsd') cls.vh_xml_file = casepath('examples/vehicles/vehicles.xml') cls.col_dir = casepath('examples/collection') cls.col_xsd_file = casepath('examples/collection/collection.xsd') cls.col_xml_file = casepath('examples/collection/collection.xml')
def test_fetch_namespaces(self): self.assertFalse(fetch_namespaces(casepath('resources/malformed.xml')))
def test_fetch_resource(self): wrong_path = casepath('resources/dummy_file.txt') self.assertRaises(XMLSchemaURLError, fetch_resource, wrong_path) right_path = casepath('resources/dummy file.txt') self.assertTrue(fetch_resource(right_path).endswith('dummy file.txt'))
def setUpClass(cls): cls.xs1 = XMLSchema(casepath("examples/vehicles/vehicles.xsd")) cls.xs2 = XMLSchema(casepath("examples/collection/collection.xsd")) cls.cars = cls.xs1.elements['vehicles'].type.content_type[0] cls.bikes = cls.xs1.elements['vehicles'].type.content_type[1]