def testBadVersions(self): """ Test very deep form definition created and data saved """ fin = open( get_file("data/bad_version.xsd"), 'r' ) formdef = FormDef(fin) fin.close() try: formdef.validate() self.fail("Should raise a version error") except FormDef.FormDefError, e: pass
def validate_schema(self, file_name): """validate schema Returns a tuple (is_valid, error) is_valid - True if valid, False if not error - Relevant validation error """ fout = open(file_name, 'r') formdef = FormDef(fout) fout.close() try: formdef.validate() except FormDef.FormDefError, e: return False, e
def validate_xml(xml_body, display_name="your xform", do_hq_validation=True): """Validates an xform from the raw text, and takes in a display name to use in throwing erros. Returns the generated FormDef or thows an exception on failure.""" output, errorstream, has_error = form_translate(xml_body) if has_error: raise Exception("Could not convert xform (%s) to schema. Your error is %s" % (display_name, errorstream)) # if no errors, we should have a valid schema in the output # check the meta block, by creating a formdef object and inspecting it formdef = FormDef(StringIO(output)) if not formdef: raise Exception("Could not get a valid form definition from the xml file: %s" % display_name) if do_hq_validation: #formdef.validate() throws errors on poor validation formdef.validate() # if we made it here we're all good return formdef