def validate_metadata(self, metadata, reviewer=False, required_fields=False): """ Validates registration_metadata field. """ schema = create_jsonschema_from_metaschema(self.schema, required_fields=required_fields, is_reviewer=reviewer) try: jsonschema.validate(metadata, schema) except jsonschema.ValidationError as e: for page in self.schema['pages']: for question in page['questions']: if e.relative_schema_path[0] == 'required': raise ValidationError( 'For your registration the \'{}\' field is required'.format(question['title']) ) elif e.relative_schema_path[0] == 'additionalProperties': raise ValidationError( 'For your registration the \'{}\' field is extraneous and not permitted in your response.'.format(question['qid']) ) elif e.relative_path[0] == question['qid']: if 'options' in question: raise ValidationError( 'For your registration your response to the \'{}\' field is invalid, your response must be one of the provided options.'.format( question['title'], ), ) raise ValidationError( 'For your registration your response to the \'{}\' field is invalid.'.format(question['title']), ) raise ValidationError(e.message) except jsonschema.SchemaError as e: raise ValidationValueError(e.message) return
def validate_metadata(self, metadata, reviewer=False, required_fields=False): """ Validates registration_metadata field. """ schema = create_jsonschema_from_metaschema( self.schema, required_fields=required_fields, is_reviewer=reviewer) try: jsonschema.validate(metadata, schema) except jsonschema.ValidationError as e: for page in self.schema['pages']: for question in page['questions']: if e.relative_schema_path[0] == 'required': raise ValidationError( 'For your registration the \'{}\' field is required' .format(question['title'])) elif e.relative_schema_path[0] == 'additionalProperties': raise ValidationError( 'For your registration the \'{}\' field is extraneous and not permitted in your response.' .format(question['qid'])) elif e.relative_path[0] == question['qid']: if 'options' in question: raise ValidationError( 'For your registration your response to the \'{}\' field is invalid, your response must be one of the provided options.' .format(question['title'], ), ) raise ValidationError( 'For your registration your response to the \'{}\' field is invalid.' .format(question['title']), ) raise ValidationError(e) except jsonschema.SchemaError as e: raise ValidationValueError(e) return
def validate_metadata(self, metadata, reviewer=False, required_fields=False): """ Validates registration_metadata field. """ schema = create_jsonschema_from_metaschema(self.schema, required_fields=required_fields, is_reviewer=reviewer) try: jsonschema.validate(metadata, schema) except jsonschema.ValidationError as e: raise ValidationValueError(e.message) except jsonschema.SchemaError as e: raise ValidationValueError(e.message) return
def prereg_metadata(self, draft): test_metadata = {} json_schema = create_jsonschema_from_metaschema(draft.registration_schema.schema) for key, value in json_schema["properties"].iteritems(): response = "Test response" if value["properties"]["value"].get("enum"): response = value["properties"]["value"]["enum"][0] if value["properties"]["value"].get("properties"): response = {"question": {"value": "Test Response"}} test_metadata[key] = {"value": response} return test_metadata
def prereg_metadata(self, draft): test_metadata = {} json_schema = create_jsonschema_from_metaschema(draft.registration_schema.schema) for key, value in json_schema['properties'].iteritems(): response = 'Test response' if value['properties']['value'].get('enum'): response = value['properties']['value']['enum'][0] if value['properties']['value'].get('properties'): response = {'question': {'value': 'Test Response'}} test_metadata[key] = {'value': response} return test_metadata
def metadata(draft): test_metadata = {} json_schema = create_jsonschema_from_metaschema( draft.registration_schema.schema) for key, value in json_schema['properties'].iteritems(): response = 'Test response' if value['properties']['value'].get('enum'): response = value['properties']['value']['enum'][0] if value['properties']['value'].get('properties'): response = {'question': {'value': 'Test Response'}} test_metadata[key] = {'value': response} return test_metadata
def metadata(draft): test_metadata = {} json_schema = create_jsonschema_from_metaschema( draft.registration_schema.schema) for key, value in json_schema['properties'].items(): response = 'Test response' items = value['properties']['value'].get('items') enum = value['properties']['value'].get('enum') if items: # multiselect response = [items['enum'][0]] elif enum: # singleselect response = enum[0] elif value['properties']['value'].get('properties'): response = {'question': {'value': 'Test Response'}} test_metadata[key] = {'value': response} return test_metadata
def metadata(draft): test_metadata = {} json_schema = create_jsonschema_from_metaschema( draft.registration_schema.schema) for key, value in json_schema['properties'].items(): response = 'Test response' items = value['properties']['value'].get('items') enum = value['properties']['value'].get('enum') if items: # multiselect response = [items['enum'][0]] elif enum: # singleselect response = enum[0] elif value['properties']['value'].get('properties'): response = {'question': {'value': 'Test Response'}} test_metadata[key] = {'value': response} return test_metadata