From 25f21bd2376603c8e233a0a0e5a726a0fdfdd33e Mon Sep 17 00:00:00 2001 From: Diederik van der Boor Date: Thu, 13 Jul 2017 13:55:23 +0200 Subject: Fixed #28393 -- Added helpful error messages for invalid AutoField/FloatField/IntegerField values. Co-authored-by: Diederik van der Boor Co-authored-by: Nick Pope --- tests/model_fields/test_integerfield.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests/model_fields/test_integerfield.py') diff --git a/tests/model_fields/test_integerfield.py b/tests/model_fields/test_integerfield.py index 626b67b00b..c72cb48015 100644 --- a/tests/model_fields/test_integerfield.py +++ b/tests/model_fields/test_integerfield.py @@ -137,6 +137,23 @@ class IntegerFieldTests(TestCase): instance = self.model.objects.get(value='10') self.assertEqual(instance.value, 10) + def test_invalid_value(self): + tests = [ + (TypeError, ()), + (TypeError, []), + (TypeError, {}), + (TypeError, set()), + (TypeError, object()), + (TypeError, complex()), + (ValueError, 'non-numeric string'), + (ValueError, b'non-numeric byte-string'), + ] + for exception, value in tests: + with self.subTest(value): + msg = "Field 'value' expected a number but got %r." % (value,) + with self.assertRaisesMessage(exception, msg): + self.model.objects.create(value=value) + class SmallIntegerFieldTests(IntegerFieldTests): model = SmallIntegerModel -- cgit v1.3