Beispiel #1
0
    def test_format_custom_registered_fail(self):
        data = 'No-spaces-here'

        validator = validictory.SchemaValidator({'spaces': validate_format_contains_spaces})

        # validator registered, but data does not conform
        self.assertRaises(ValueError, validator.validate, data, self.schema_spaces)
    def test_format_non_empty_fail(self):
        data = {}

        validator = validictory.SchemaValidator(
            {'non-empty-dict': validate_format_dict_not_empty})

        self.assertRaises(ValueError, validator.validate, data,
                          self.schema_non_empty_dict)
Beispiel #3
0
    def test_format_custom_instantiated_pass(self):
        data = 'Here are spaces'

        validator = validictory.SchemaValidator({'spaces': validate_format_contains_spaces})

        try:
            # validator installed, but data validates
            validator.validate(data, self.schema_spaces)
        except ValueError, e:
            self.fail("Unexpected failure: %s" % e)
Beispiel #4
0
    def test_format_custom_registered_pass(self):
        data = 'Here are spaces'

        validator = validictory.SchemaValidator()
        validator.register_format_validator('spaces', validate_format_contains_spaces)

        try:
            # validator registered, but data validates
            validator.validate(data, self.schema_spaces)
        except ValueError, e:
            self.fail("Unexpected failure: %s" % e)
Beispiel #5
0
def setschema(key, schema):
    "Associate a validitory schema with a key such that nobody can set an invalid value to it"
    global is_clean
    is_clean = False
    try:
        json.dumps({key: schema})
    except:
        raise Exception
    with reglock:
        prefix = key.split("/")[0]
        f = registry.open(prefix)
        if not 'keys' in f:
            f['keys'] = {}
        if not key in f['keys']:
            f['keys'][key] = {}
        validictory.SchemaValidator(schema)
        f['keys'][key]['schema'] = copy.deepcopy(schema)