diff options
Diffstat (limited to 'tests/invalid_models_tests/test_ordinary_fields.py')
| -rw-r--r-- | tests/invalid_models_tests/test_ordinary_fields.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/invalid_models_tests/test_ordinary_fields.py b/tests/invalid_models_tests/test_ordinary_fields.py index 033970aae4..9bde621ed4 100644 --- a/tests/invalid_models_tests/test_ordinary_fields.py +++ b/tests/invalid_models_tests/test_ordinary_fields.py @@ -1,6 +1,7 @@ # -*- encoding: utf-8 -*- from __future__ import unicode_literals +import decimal import unittest from django.core.checks import Error, Warning as DjangoWarning @@ -64,6 +65,22 @@ class BooleanFieldTests(IsolatedModelsTestCase): ] self.assertEqual(errors, expected) + def test_invalid_default(self): + class Model(models.Model): + field = models.BooleanField(default='invalid') + + field = Model._meta.get_field('field') + errors = field.check() + expected = [ + Error( + "Invalid 'default' value: 'invalid' value must be either True or False.", + hint=None, + obj=field, + id='fields.E008', + ), + ] + self.assertEqual(errors, expected) + class CharFieldTests(IsolatedModelsTestCase, TestCase): @@ -215,6 +232,22 @@ class CharFieldTests(IsolatedModelsTestCase, TestCase): ] self.assertEqual(errors, expected) + def test_invalid_default(self): + class Model(models.Model): + field = models.CharField(max_length=10, default=None) + + field = Model._meta.get_field('field') + errors = field.check() + expected = [ + Error( + "Invalid 'default' value: This field cannot be null.", + hint=None, + obj=field, + id='fields.E008', + ), + ] + self.assertEqual(errors, expected) + class DateFieldTests(IsolatedModelsTestCase, TestCase): @@ -281,6 +314,25 @@ class DateFieldTests(IsolatedModelsTestCase, TestCase): def test_fix_default_value_tz(self): self.test_fix_default_value() + def test_invalid_default(self): + class Model(models.Model): + field = models.DateField(default='invalid') + + field = Model._meta.get_field('field') + errors = field.check() + message = ( + "Invalid 'default' value: 'invalid' value has an invalid date format. It must be in YYYY-MM-DD format." + ) + expected = [ + Error( + message, + hint=None, + obj=field, + id='fields.E008', + ), + ] + self.assertEqual(errors, expected) + class DateTimeFieldTests(IsolatedModelsTestCase, TestCase): @@ -419,6 +471,22 @@ class DecimalFieldTests(IsolatedModelsTestCase): expected = [] self.assertEqual(errors, expected) + def test_invalid_default(self): + class Model(models.Model): + field = models.DecimalField(max_digits=3, decimal_places=2, default=decimal.Decimal('20.00')) + + field = Model._meta.get_field('field') + errors = field.check() + expected = [ + Error( + "Invalid 'default' value: Ensure that there are no more than 3 digits in total.", + hint=None, + obj=field, + id='fields.E008', + ), + ] + self.assertEqual(errors, expected) + class FileFieldTests(IsolatedModelsTestCase): |
