summaryrefslogtreecommitdiff
path: root/tests/model_forms
diff options
context:
space:
mode:
Diffstat (limited to 'tests/model_forms')
-rw-r--r--tests/model_forms/tests.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py
index 03a498c4cd..3efc724c38 100644
--- a/tests/model_forms/tests.py
+++ b/tests/model_forms/tests.py
@@ -1391,6 +1391,13 @@ class ModelChoiceFieldTests(TestCase):
f.clean(None)
with self.assertRaises(ValidationError):
f.clean(0)
+
+ # Invalid types that require TypeError to be caught (#22808).
+ with self.assertRaises(ValidationError):
+ f.clean([['fail']])
+ with self.assertRaises(ValidationError):
+ f.clean([{'foo': 'bar'}])
+
self.assertEqual(f.clean(self.c2.id).name, "It's a test")
self.assertEqual(f.clean(self.c3.id).name, 'Third')
@@ -1495,6 +1502,12 @@ class ModelMultipleChoiceFieldTests(TestCase):
with self.assertRaises(ValidationError):
f.clean(['fail'])
+ # Invalid types that require TypeError to be caught (#22808).
+ with self.assertRaises(ValidationError):
+ f.clean([['fail']])
+ with self.assertRaises(ValidationError):
+ f.clean([{'foo': 'bar'}])
+
# Add a Category object *after* the ModelMultipleChoiceField has already been
# instantiated. This proves clean() checks the database during clean() rather
# than caching it at time of instantiation.