示例#1
0
 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
示例#2
0
 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
示例#3
0
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