summaryrefslogtreecommitdiff
path: root/tests/invalid_models_tests
diff options
context:
space:
mode:
authorAdam Chainz <me@adamj.eu>2017-03-05 16:50:33 +0000
committerTim Graham <timograham@gmail.com>2017-03-11 12:27:29 -0500
commita452dddb253ff4fdd793351dac73eeef4d86b83e (patch)
tree7f2aacb79f04d8404210c7ce7f68ef0bc0f4e3de /tests/invalid_models_tests
parent75503a823f6358892fff5aeb3691683ad9cc5a60 (diff)
Fixed #27904 -- Added a system check that Field.validators are callable.
Diffstat (limited to 'tests/invalid_models_tests')
-rw-r--r--tests/invalid_models_tests/test_ordinary_fields.py17
-rw-r--r--tests/invalid_models_tests/test_relative_fields.py2
2 files changed, 18 insertions, 1 deletions
diff --git a/tests/invalid_models_tests/test_ordinary_fields.py b/tests/invalid_models_tests/test_ordinary_fields.py
index f1f1f07766..9b5b57834d 100644
--- a/tests/invalid_models_tests/test_ordinary_fields.py
+++ b/tests/invalid_models_tests/test_ordinary_fields.py
@@ -205,6 +205,23 @@ class CharFieldTests(TestCase):
]
self.assertEqual(errors, expected)
+ def test_bad_validators(self):
+ class Model(models.Model):
+ field = models.CharField(max_length=10, validators=[True])
+
+ field = Model._meta.get_field('field')
+ self.assertEqual(field.check(), [
+ Error(
+ "All 'validators' must be callable.",
+ hint=(
+ "validators[0] (True) isn't a function or instance of a "
+ "validator class."
+ ),
+ obj=field,
+ id='fields.E008',
+ ),
+ ])
+
@unittest.skipUnless(connection.vendor == 'mysql',
"Test valid only for MySQL")
def test_too_long_char_field_under_mysql(self):
diff --git a/tests/invalid_models_tests/test_relative_fields.py b/tests/invalid_models_tests/test_relative_fields.py
index db677bd670..023e201a8a 100644
--- a/tests/invalid_models_tests/test_relative_fields.py
+++ b/tests/invalid_models_tests/test_relative_fields.py
@@ -102,7 +102,7 @@ class RelativeFieldTests(SimpleTestCase):
m2m = models.ManyToManyField(
Model,
null=True,
- validators=[''],
+ validators=[lambda x: x],
limit_choices_to={'name': 'test_name'},
through='ThroughModel',
through_fields=('modelm2m', 'model'),