From 0c5146523b614783b60ba9f9222769dff83c776c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=9Fuayip=20=C3=BCz=C3=BClmez?= Date: Sat, 17 Jun 2023 00:34:47 +0300 Subject: [PATCH] Fixed #34662 -- Corrected number in error messages for Array(Min/Max)LengthValidator. --- django/contrib/postgres/validators.py | 4 ++-- tests/postgres_tests/test_array.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/django/contrib/postgres/validators.py b/django/contrib/postgres/validators.py index 638dcff60a..330b69b996 100644 --- a/django/contrib/postgres/validators.py +++ b/django/contrib/postgres/validators.py @@ -16,7 +16,7 @@ class ArrayMaxLengthValidator(MaxLengthValidator): "%(limit_value)d.", "List contains %(show_value)d items, it should contain no more than " "%(limit_value)d.", - "limit_value", + "show_value", ) @@ -26,7 +26,7 @@ class ArrayMinLengthValidator(MinLengthValidator): "%(limit_value)d.", "List contains %(show_value)d items, it should contain no fewer than " "%(limit_value)d.", - "limit_value", + "show_value", ) diff --git a/tests/postgres_tests/test_array.py b/tests/postgres_tests/test_array.py index 5f8441ba1b..48b03c626a 100644 --- a/tests/postgres_tests/test_array.py +++ b/tests/postgres_tests/test_array.py @@ -990,6 +990,13 @@ class TestValidation(PostgreSQLSimpleTestCase): "List contains 4 items, it should contain no more than 3.", ) + def test_with_size_singular(self): + field = ArrayField(models.IntegerField(), size=1) + field.clean([1], None) + msg = "List contains 2 items, it should contain no more than 1." + with self.assertRaisesMessage(exceptions.ValidationError, msg): + field.clean([1, 2], None) + def test_nested_array_mismatch(self): field = ArrayField(ArrayField(models.IntegerField())) field.clean([[1, 2], [3, 4]], None) @@ -1132,6 +1139,13 @@ class TestSimpleFormField(PostgreSQLSimpleTestCase): "List contains 3 items, it should contain no fewer than 4.", ) + def test_min_length_singular(self): + field = SimpleArrayField(forms.IntegerField(), min_length=2) + field.clean([1, 2]) + msg = "List contains 1 item, it should contain no fewer than 2." + with self.assertRaisesMessage(exceptions.ValidationError, msg): + field.clean([1]) + def test_required(self): field = SimpleArrayField(forms.CharField(), required=True) with self.assertRaises(exceptions.ValidationError) as cm: