def Help(): debug.dprint("Usage: update_options [OPTIONS] ... [FILES]\n" + \ "\n" + \ "Updates flml, bml, swml and adml files. If FILES is not specified, all .flml, .bml, .swml and .adml files in\n" + \ "tests/*/., tests/*/*/., longtests/*/., longtests/*/*/. and examples/*/. will be updated. Options:\n" + \ "\n" + \ "-h Display this help\n" + \ "-v Verbose mode", 0) return
def Help(): debug.dprint("Usage: update_options [OPTIONS] ... [FILES]\n" + \ "\n" + \ "Updates flml, and adml files. If FILES is not specified, all .flml, and .adml files in\n" + \ "tests/*/., tests/*/*/., longtests/*/., longtests/*/*/. and examples/*/. will be updated. Options:\n" + \ "\n" + \ "-h Display this help\n" + \ "-v Verbose mode", 0) return
def TestXmlFiles(self, testDir, depth): debug.dprint("Checking xml files:", 0) for filename in self._TestFiles("xml", testDir, depth): try: xmlParse = xml.dom.minidom.parse(filename) debug.dprint(filename + " : Pass", 0) self._passes += 1 except xml.parsers.expat.ExpatError: debug.dprint(filename + " : Fail", 0) self._optionErrors[filename] = xml.parsers.expat.ExpatError return
schemadict[k] = schema.Schema(os.path.join(rootDir, "schemas", v)) filenames = args if len(filenames) == 0: filenames = [] for k, v in extdict.items(): filenames += glob.glob(os.path.join(testDir, "*", "*." + k)) filenames += glob.glob(os.path.join(testDir, "*", "*", "*." + k)) filenames += glob.glob(os.path.join(longtestDir, "*", "*." + k)) filenames += glob.glob(os.path.join(longtestDir, "*", "*", "*." + k)) filenames += glob.glob(os.path.join(examplesDir, "*", "*." + k)) invalidFiles = [] updated = 0 for filename in filenames: debug.dprint("Processing " + str(filename), 1) ext = filename.split(".")[-1] sch = schemadict[ext] # Read the file and check that either the file is valid, or diamond.schema # can make the file valid by adding in the missing elements optionsTree = sch.read(filename) lost_eles, added_eles, lost_attrs, added_attrs = sch.read_errors() if len(lost_eles) + len(lost_attrs) > 0 or not optionsTree.valid: debug.deprint(str(filename) + ": Invalid", 0) debug.deprint( str(filename) + " errors: " + str( (lost_eles, added_eles, lost_attrs, added_attrs)), 1) invalidFiles.append(filename) continue
schemadict[k] = schema.Schema(os.path.join(rootDir, "schemas", v)) filenames = args if len(filenames) == 0: filenames = [] for k,v in extdict.items(): filenames += glob.glob(os.path.join(testDir, "*", "*."+k)) filenames += glob.glob(os.path.join(testDir, "*", "*", "*."+k)) filenames += glob.glob(os.path.join(longtestDir, "*", "*."+k)) filenames += glob.glob(os.path.join(longtestDir, "*", "*", "*."+k)) filenames += glob.glob(os.path.join(examplesDir, "*", "*."+k)) invalidFiles = [] updated = 0 for filename in filenames: debug.dprint("Processing " + str(filename), 1) ext = filename.split(".")[-1] sch = schemadict[ext] # Read the file and check that either the file is valid, or diamond.schema # can make the file valid by adding in the missing elements optionsTree = sch.read(filename) lost_eles, added_eles, lost_attrs, added_attrs = sch.read_errors() if len(lost_eles) + len(lost_attrs) > 0 or not optionsTree.valid: debug.deprint(str(filename) + ": Invalid", 0) debug.deprint(str(filename) + " errors: " + str((lost_eles, added_eles, lost_attrs, added_attrs)), 1) invalidFiles.append(filename) continue # Write out the updated options file
def ValidateOptionsFiles(self, schemafile, testDir, depth, extension = None, xmlRootNode = None): debug.dprint("Validating options file against schema: " + schemafile, 0) schemafile = os.path.join(self._rootDir, schemafile) sch = schema.Schema(schemafile) if not extension is None: debug.dprint("Testing files with extension: " + extension, 0) for filename in self._TestFiles(extension, testDir, depth): optionsTree = sch.read(filename) lost_eles, added_eles, lost_attrs, added_attrs = sch.read_errors() if len(lost_eles) + len(added_eles) + len(lost_attrs) + len(added_attrs) == 0 and optionsTree.valid: debug.dprint(filename + " : Pass", 0) self._passes += 1 else: debug.dprint(filename + " : Fail", 0) self._optionErrors[filename] = (lost_eles, added_eles, lost_attrs, added_attrs) if not xmlRootNode is None: debug.dprint("Testing xml files with root node: " + xmlRootNode, 0) for filename in self._TestFiles("xml", testDir, depth): try: xmlParse = xml.dom.minidom.parse(filename) except xml.parsers.expat.ExpatError: continue rootEles = xmlParse.getElementsByTagName(xmlRootNode) if len(rootEles) == 0: continue optionsTree = sch.read(filename) lost_eles, added_eles, lost_attrs, added_attrs = sch.read_errors() if len(lost_eles) + len(added_eles) + len(lost_attrs) + len(added_attrs) == 0 and optionsTree.valid: debug.dprint(filename + " : Pass", 0) self._passes += 1 else: debug.dprint(filename + " : Fail", 0) self._optionErrors[filename] = (lost_eles, added_eles, lost_attrs, added_attrs) return
def ValidateOptionsFiles(self, schemafile, testDir, depth, extension=None, xmlRootNode=None): debug.dprint( "Validating options file against schema: " + schemafile, 0) schemafile = os.path.join(self._rootDir, schemafile) sch = schema.Schema(schemafile) if not extension is None: debug.dprint("Testing files with extension: " + extension, 0) for filename in self._TestFiles(extension, testDir, depth): optionsTree = sch.read(filename) lost_eles, added_eles, lost_attrs, added_attrs = sch.read_errors( ) if len(lost_eles) + len(added_eles) + len( lost_attrs) + len( added_attrs) == 0 and optionsTree.valid: debug.dprint(filename + " : Pass", 0) self._passes += 1 else: debug.dprint(filename + " : Fail", 0) self._optionErrors[filename] = (lost_eles, added_eles, lost_attrs, added_attrs) if not xmlRootNode is None: debug.dprint( "Testing xml files with root node: " + xmlRootNode, 0) for filename in self._TestFiles("xml", testDir, depth): try: xmlParse = xml.dom.minidom.parse(filename) except xml.parsers.expat.ExpatError: continue rootEles = xmlParse.getElementsByTagName(xmlRootNode) if len(rootEles) == 0: continue optionsTree = sch.read(filename) lost_eles, added_eles, lost_attrs, added_attrs = sch.read_errors( ) if len(lost_eles) + len(added_eles) + len( lost_attrs) + len( added_attrs) == 0 and optionsTree.valid: debug.dprint(filename + " : Pass", 0) self._passes += 1 else: debug.dprint(filename + " : Fail", 0) self._optionErrors[filename] = (lost_eles, added_eles, lost_attrs, added_attrs) return