def test_list_validation_required_expect_error(self): rules = {"list.*.test": "required|max:2", "list.*.test2": "min:2"} data = { "list": [ { "test": "12", "test2": "1" }, { "test2": "1" }, { "test": "1234", "test2": "1" }, ] } expected = { "list.1.test": [REQUIRED_ERROR.format(field="list.1.test")], "list.2.test": [MAX_STRING_ERROR.format(field="list.2.test", max=2)], "list.0.test2": [MIN_STRING_ERROR.format(field="list.0.test2", min=2)], "list.1.test2": [MIN_STRING_ERROR.format(field="list.1.test2", min=2)], "list.2.test2": [MIN_STRING_ERROR.format(field="list.2.test2", min=2)], } errors = self.validator.validate(data, rules) self.assertEqual(errors, expected)
def test_list_validation_flat_expect_error(self): expected = [ MAX_STRING_ERROR.format(field="list.1.test", max=2), MAX_STRING_ERROR.format(field="list.2.test", max=2), MIN_STRING_ERROR.format(field="list.0.test2", min=2), MIN_STRING_ERROR.format(field="list.1.test2", min=2), MIN_STRING_ERROR.format(field="list.2.test2", min=2), ] errors = self.validator.validate(self.data, self.rules, flat=True) self.assertEqual(errors, expected)
def test_list_validation_expect_with_custom_fields_error(self): expected = { "list.1.test": [MAX_STRING_ERROR.format(field="list.1.test", max=2)], "list.2.test": [MAX_STRING_ERROR.format(field="list.2.test", max=2)], "list.0.test2": [MIN_STRING_ERROR.format(field="custom", min=2)], "list.1.test2": [MIN_STRING_ERROR.format(field="custom", min=2)], "list.2.test2": [MIN_STRING_ERROR.format(field="custom", min=2)], } self.validator.overwrite_fields = {"list.*.test2": "custom"} errors = self.validator.validate(self.data, self.rules) self.assertEqual(errors, expected)
def test_list_validation_expect_with_custom_message_error(self): new_message = "Hey! The {field} can't be greater than {max} chars!" expected = { "list.1.test": [new_message.format(field="list.1.test", max=2)], "list.2.test": [new_message.format(field="list.2.test", max=2)], "list.0.test2": [MIN_STRING_ERROR.format(field="list.0.test2", min=2)], "list.1.test2": [MIN_STRING_ERROR.format(field="list.1.test2", min=2)], "list.2.test2": [MIN_STRING_ERROR.format(field="list.2.test2", min=2)], } self.validator.overwrite_messages = {"list.*.test.max": new_message} errors = self.validator.validate(self.data, self.rules) self.assertEqual(errors, expected)
def test_list_validation_expect_error(self): expected = { "list.1.test": [MAX_STRING_ERROR.format(field="list.1.test", max=2)], "list.2.test": [MAX_STRING_ERROR.format(field="list.2.test", max=2)], "list.0.test2": [MIN_STRING_ERROR.format(field="list.0.test2", min=2)], "list.1.test2": [MIN_STRING_ERROR.format(field="list.1.test2", min=2)], "list.2.test2": [MIN_STRING_ERROR.format(field="list.2.test2", min=2)], } errors = self.validator.validate(self.data, self.rules) self.assertEqual(errors, expected)
def test_min_rule_with_empty_string_expect_error(self): rules = {"test": "min:5"} data = {"test": ""} expected = MIN_STRING_ERROR.format(field=self.field, min=5) errors = self.validator.validate(data, rules) errs = errors.get(self.field) self.assertEqual(errs[0], expected)
def test_custom_field_expect_new_field(self): rules = {"some_field": "min:5"} data = {"some_field": "oops"} self.validator.overwrite_fields = {"some_field": "custom"} expected = MIN_STRING_ERROR.format(field="custom", min=5) errors = self.validator.validate(data, rules) errs = errors.get("some_field") self.assertEqual(errs[0], expected)
def test_combo_with_invalid_email_and_min_expect_error(self): field = "field1" rules = {"field1": "filled|email|min:5|max:255"} data = {"field1": "oops"} errors = self.validator.validate(data, rules) errs = errors.get(field) self.assertEqual(errs[0], EMAIL_ERROR.format(field=field)) self.assertEqual(errs[1], MIN_STRING_ERROR.format(field=field, min=5))