def check_xsd_file_with_lxml(self, xmlschema_time): start_time = time.time() lxs = lxml_etree.parse(xsd_file) try: lxml_etree.XMLSchema(lxs.getroot()) except lxml_etree.XMLSchemaParseError as err: if not self.errors: print( "\nSchema error with lxml.etree.XMLSchema for file {!r} ({}): {}" .format(xsd_file, self.__class__.__name__, unicode_type(err))) else: if self.errors: print( "\nUnrecognized errors with lxml.etree.XMLSchema for file {!r} ({}): {}" .format( xsd_file, self.__class__.__name__, '\n++++++\n'.join( [unicode_type(e) for e in self.errors]))) lxml_schema_time = time.time() - start_time if lxml_schema_time >= xmlschema_time: print( "\nSlower lxml.etree.XMLSchema ({:.3f}s VS {:.3f}s) with file {!r} ({})" .format(lxml_schema_time, xmlschema_time, xsd_file, self.__class__.__name__))
def check_lxml_validation(self): try: schema = lxml_etree.XMLSchema(self.lxml_schema.getroot()) except lxml_etree.XMLSchemaParseError: print("\nSkip lxml.etree.XMLSchema validation test for {!r} ({})". format(xml_file, TestValidator.__name__, )) else: xml_tree = lxml_etree.parse(xml_file) if self.errors: self.assertFalse(schema.validate(xml_tree)) else: self.assertTrue(schema.validate(xml_tree))