summaryrefslogtreecommitdiff
path: root/tests/validation
diff options
context:
space:
mode:
authorLoïc Bistuer <loic.bistuer@gmail.com>2016-04-22 07:18:43 +0700
committerLoïc Bistuer <loic.bistuer@gmail.com>2016-04-22 09:38:47 +0700
commita885bca1dfe5905788ebb9f3a6557822ce3d9e9d (patch)
treefcbd9544afa472e4e7dbcb3b9b05d84c2d22456c /tests/validation
parentec6121693f112ae33b653b4364e812722d2eb567 (diff)
downloaddjango-a885bca1dfe5905788ebb9f3a6557822ce3d9e9d.tar.gz
Fixed #26528 -- Allowed any iterable (e.g. tuple) as validators kwarg for form/model fields.
Diffstat (limited to 'tests/validation')
-rw-r--r--tests/validation/models.py2
-rw-r--r--tests/validation/test_validators.py16
2 files changed, 16 insertions, 2 deletions
diff --git a/tests/validation/models.py b/tests/validation/models.py
index 83b998c38f..2e2a144cb6 100644
--- a/tests/validation/models.py
+++ b/tests/validation/models.py
@@ -31,6 +31,8 @@ class ModelToValidate(models.Model):
)
url = models.URLField(blank=True)
f_with_custom_validator = models.IntegerField(blank=True, null=True, validators=[validate_answer_to_universe])
+ f_with_iterable_of_validators = models.IntegerField(blank=True, null=True,
+ validators=(validate_answer_to_universe,))
slug = models.SlugField(blank=True)
def clean(self):
diff --git a/tests/validation/test_validators.py b/tests/validation/test_validators.py
index d06605eeca..4a3c99f08b 100644
--- a/tests/validation/test_validators.py
+++ b/tests/validation/test_validators.py
@@ -6,14 +6,26 @@ from .models import ModelToValidate
class TestModelsWithValidators(ValidationTestCase):
def test_custom_validator_passes_for_correct_value(self):
- mtv = ModelToValidate(number=10, name='Some Name', f_with_custom_validator=42)
+ mtv = ModelToValidate(number=10, name='Some Name', f_with_custom_validator=42,
+ f_with_iterable_of_validators=42)
self.assertIsNone(mtv.full_clean())
def test_custom_validator_raises_error_for_incorrect_value(self):
- mtv = ModelToValidate(number=10, name='Some Name', f_with_custom_validator=12)
+ mtv = ModelToValidate(number=10, name='Some Name', f_with_custom_validator=12,
+ f_with_iterable_of_validators=42)
self.assertFailsValidation(mtv.full_clean, ['f_with_custom_validator'])
self.assertFieldFailsValidationWithMessage(
mtv.full_clean,
'f_with_custom_validator',
['This is not the answer to life, universe and everything!']
)
+
+ def test_field_validators_can_be_any_iterable(self):
+ mtv = ModelToValidate(number=10, name='Some Name', f_with_custom_validator=42,
+ f_with_iterable_of_validators=12)
+ self.assertFailsValidation(mtv.full_clean, ['f_with_iterable_of_validators'])
+ self.assertFieldFailsValidationWithMessage(
+ mtv.full_clean,
+ 'f_with_iterable_of_validators',
+ ['This is not the answer to life, universe and everything!']
+ )