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
Beispiel #2
0
 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
Beispiel #3
0
 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
Beispiel #7
0
        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