1
0
mirror of https://github.com/django/django.git synced 2025-01-06 08:25:50 +00:00
django/tests/model_fields/test_autofield.py
Diederik van der Boor 25f21bd237 Fixed #28393 -- Added helpful error messages for invalid AutoField/FloatField/IntegerField values.
Co-authored-by: Diederik van der Boor <vdboor@edoburu.nl>
Co-authored-by: Nick Pope <nick.pope@flightdataservices.com>
2019-08-05 08:41:29 +02:00

33 lines
929 B
Python

from django.test import TestCase
from .models import AutoModel, BigAutoModel, SmallAutoModel
class AutoFieldTests(TestCase):
model = AutoModel
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=value):
msg = "Field 'value' expected a number but got %r." % (value,)
with self.assertRaisesMessage(exception, msg):
self.model.objects.create(value=value)
class BigAutoFieldTests(AutoFieldTests):
model = BigAutoModel
class SmallAutoFieldTests(AutoFieldTests):
model = SmallAutoModel