def test_schema(self): schema = Schema(schemas.index) with self.assertRaises(SchemaError): raise schema.make_error('Dummy error') data = schema.validate_request({'name': TEST_NAME}) self.assertEqual(data, {'name': TEST_NAME}) timestamp = time.time() response = schema.make_response({'name': TEST_NAME, 'time': timestamp}) self.assertEqual(response, {'name': TEST_NAME, 'time': timestamp})
def test_schema_custom_error_class(self): schema = Schema(schemas.index, error_class=CustomError) with self.assertRaises(CustomError): raise schema.make_error('Custom Error') self.assertRaises(CustomError, schema.validate_request, {}) schema.validate_request({'name': TEST_NAME}) self.assertRaises(CustomError, schema.make_response, {}) schema.make_response({'name': TEST_NAME, 'time': time.time()})
def test_fastjsonschema(self): error_class = fastjsonschema.JsonSchemaException schema = Schema(FastSchemas(), validate_func=fast_validate, validation_error_class=error_class) # Default error with self.assertRaises(SchemaError): raise schema.make_error("Dummy error") # Validation error propagated self.assertRaises(error_class, schema.validate_request, {"name": "Something"}) # Proper request data = schema.validate_request({"name": TEST_NAME}) self.assertEqual(data, {"name": TEST_NAME}) # Proper response # NOTE: fastjsonschema expects number as an int, not float timestamp = int(time.time()) response = schema.make_response({"name": TEST_NAME, "time": timestamp}) self.assertEqual(response, {"name": TEST_NAME, "time": timestamp})
def test_shema_make_error_custom_error_class(self): schema = Schema(schemas.index) schema.validate_request({'name': 'Igor'}) with self.assertRaisesRegexp(CustomError, 'Something'): raise schema.make_error('Something', error_class=CustomError)
def test_shema_make_error_custom_error_class(self): schema = Schema(schemas.index) schema.validate_request({"name": "Igor"}) with self.assertRaisesRegexp(CustomError, "Something"): raise schema.make_error("Something", error_class=CustomError)