def test_get_schemas_from_doc(self): filename = self.get_simple_valid_xml() parser = etree.XMLParser(remove_blank_text=True) doc = etree.parse(filename, parser=parser) schema = getSchemas(doc=doc) self.assertTrue(type(schema) is etree.XMLSchema)
def run(self, xml_filename=None, schema_filename=None): """ Validates (using LXML) an XML file using a specified schema file """ doc = etree.ElementTree(file=xml_filename) if schema_filename: xmlschema = etree.XMLSchema(etree.parse(schema_filename)) else: xmlschema = getSchemas(doc=doc) xmlschema.assertValid(doc) self.set_progress(100, total=100) return "Success"
def validate_against_schema(xmlfile, schema=None, rootdir=None): doc = etree.ElementTree(file=xmlfile) if schema: xmlschema = etree.XMLSchema(etree.parse(schema)) else: xmlschema = getSchemas(doc=doc) xmlschema.assertValid(doc) if rootdir is None: rootdir = os.path.split(xmlfile)[0] for ptr in find_pointers(xmlfile): validate_against_schema(os.path.join(rootdir, ptr.path), schema)
def validate_against_schema(xmlfile, schema=None, rootdir=None): doc = etree.ElementTree(file=xmlfile) if schema: xmlschema = etree.parse(schema) else: xmlschema = getSchemas(doc=doc) with tempfile.TemporaryDirectory() as tempdir: xmlschema = download_imported_https_schemas(xmlschema, tempdir) xmlschema = etree.XMLSchema(xmlschema) xmlschema.assertValid(doc) if rootdir is None: rootdir = os.path.split(xmlfile)[0] for ptr in find_pointers(xmlfile): validate_against_schema(os.path.join(rootdir, ptr.path), schema)
def test_get_schema_from_file_with_bad_input(self): fp = self.get_bad_xml_file() with self.assertRaises(etree.XMLSyntaxError): getSchemas(filename=fp)
def test_get_schema_from_none_existing_file_should_raise_exception(self): filename = "this_file_hopefully_does_not_exist" with self.assertRaises(IOError): getSchemas(filename=filename)
def test_get_schema_with_no_argument_should_throw_exception(self): with self.assertRaisesRegexp( AttributeError, "'NoneType' object has no attribute 'getroot'"): getSchemas()
def test_get_schema_from_file(self): schema = getSchemas(filename=self.get_simple_valid_xml()) self.assertTrue(type(schema) is etree.XMLSchema)
def test_get_schema_from_file(self): schema = getSchemas(filename=self.get_simple_valid_xml()) self.assertIs(type(schema), etree._Element)