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)
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)
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)
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)