示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    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)
示例#8
0
    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))