summaryrefslogtreecommitdiff
path: root/tests/invalid_models_tests/test_ordinary_fields.py
diff options
context:
space:
mode:
authorAdam Johnson <me@adamj.eu>2017-07-11 10:53:22 +0200
committerTim Graham <timograham@gmail.com>2017-07-11 13:12:17 -0400
commitf816ceedf1ae13bec22363f6d78de53d3f60c3e9 (patch)
treea29b125901648d3cf324baab1b2aad5b73962240 /tests/invalid_models_tests/test_ordinary_fields.py
parent169c3b3e07829d9ffa409b6eb5c1094d8ef918a8 (diff)
Made assertions in invalid_models_tests consistent.
Diffstat (limited to 'tests/invalid_models_tests/test_ordinary_fields.py')
-rw-r--r--tests/invalid_models_tests/test_ordinary_fields.py161
1 files changed, 53 insertions, 108 deletions
diff --git a/tests/invalid_models_tests/test_ordinary_fields.py b/tests/invalid_models_tests/test_ordinary_fields.py
index cad375aae5..d06f6dd689 100644
--- a/tests/invalid_models_tests/test_ordinary_fields.py
+++ b/tests/invalid_models_tests/test_ordinary_fields.py
@@ -15,9 +15,7 @@ class AutoFieldTests(SimpleTestCase):
id = models.AutoField(primary_key=True)
field = Model._meta.get_field('id')
- errors = field.check()
- expected = []
- self.assertEqual(errors, expected)
+ self.assertEqual(field.check(), [])
def test_primary_key(self):
# primary_key must be True. Refs #12467.
@@ -30,15 +28,13 @@ class AutoFieldTests(SimpleTestCase):
another = models.IntegerField(primary_key=True)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
'AutoFields must set primary_key=True.',
obj=field,
id='fields.E100',
),
- ]
- self.assertEqual(errors, expected)
+ ])
@isolate_apps('invalid_models_tests')
@@ -49,16 +45,14 @@ class BooleanFieldTests(SimpleTestCase):
field = models.BooleanField(null=True)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
'BooleanFields do not accept null values.',
hint='Use a NullBooleanField instead.',
obj=field,
id='fields.E110',
),
- ]
- self.assertEqual(errors, expected)
+ ])
@isolate_apps('invalid_models_tests')
@@ -75,99 +69,85 @@ class CharFieldTests(TestCase):
db_index=True)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = []
- self.assertEqual(errors, expected)
+ self.assertEqual(field.check(), [])
def test_missing_max_length(self):
class Model(models.Model):
field = models.CharField()
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"CharFields must define a 'max_length' attribute.",
obj=field,
id='fields.E120',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_negative_max_length(self):
class Model(models.Model):
field = models.CharField(max_length=-1)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'max_length' must be a positive integer.",
obj=field,
id='fields.E121',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_bad_max_length_value(self):
class Model(models.Model):
field = models.CharField(max_length="bad")
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'max_length' must be a positive integer.",
obj=field,
id='fields.E121',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_str_max_length_value(self):
class Model(models.Model):
field = models.CharField(max_length='20')
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'max_length' must be a positive integer.",
obj=field,
id='fields.E121',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_str_max_length_type(self):
class Model(models.Model):
field = models.CharField(max_length=True)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'max_length' must be a positive integer.",
obj=field,
id='fields.E121'
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_non_iterable_choices(self):
class Model(models.Model):
field = models.CharField(max_length=10, choices='bad')
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'choices' must be an iterable (e.g., a list or tuple).",
obj=field,
id='fields.E004',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_iterable_of_iterable_choices(self):
class ThingItem:
@@ -195,30 +175,26 @@ class CharFieldTests(TestCase):
field = models.CharField(max_length=10, choices=[(1, 2, 3), (1, 2, 3)])
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'choices' must be an iterable containing (actual value, human readable name) tuples.",
obj=field,
id='fields.E005',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_bad_db_index_value(self):
class Model(models.Model):
field = models.CharField(max_length=10, db_index='bad')
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'db_index' must be None, True or False.",
obj=field,
id='fields.E006',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_bad_validators(self):
class Model(models.Model):
@@ -247,19 +223,18 @@ class CharFieldTests(TestCase):
field = Model._meta.get_field('field')
validator = DatabaseValidation(connection=connection)
- errors = validator.check_field(field)
- expected = [
+ self.assertEqual(validator.check_field(field), [
Error(
'MySQL does not allow unique CharFields to have a max_length > 255.',
obj=field,
id='mysql.E001',
)
- ]
- self.assertEqual(errors, expected)
+ ])
@isolate_apps('invalid_models_tests')
class DateFieldTests(TestCase):
+ maxDiff = None
def test_auto_now_and_auto_now_add_raise_error(self):
class Model(models.Model):
@@ -294,7 +269,7 @@ class DateFieldTests(TestCase):
errors = field_dt.check()
errors.extend(field_d.check())
errors.extend(field_now.check()) # doesn't raise a warning
- expected = [
+ self.assertEqual(errors, [
DjangoWarning(
'Fixed default value provided.',
hint='It seems you set a fixed date / time / datetime '
@@ -313,11 +288,7 @@ class DateFieldTests(TestCase):
obj=field_d,
id='fields.W161',
)
- ]
- maxDiff = self.maxDiff
- self.maxDiff = None
- self.assertEqual(errors, expected)
- self.maxDiff = maxDiff
+ ])
@override_settings(USE_TZ=True)
def test_fix_default_value_tz(self):
@@ -326,6 +297,7 @@ class DateFieldTests(TestCase):
@isolate_apps('invalid_models_tests')
class DateTimeFieldTests(TestCase):
+ maxDiff = None
def test_fix_default_value(self):
class Model(models.Model):
@@ -339,7 +311,7 @@ class DateTimeFieldTests(TestCase):
errors = field_dt.check()
errors.extend(field_d.check())
errors.extend(field_now.check()) # doesn't raise a warning
- expected = [
+ self.assertEqual(errors, [
DjangoWarning(
'Fixed default value provided.',
hint='It seems you set a fixed date / time / datetime '
@@ -358,11 +330,7 @@ class DateTimeFieldTests(TestCase):
obj=field_d,
id='fields.W161',
)
- ]
- maxDiff = self.maxDiff
- self.maxDiff = None
- self.assertEqual(errors, expected)
- self.maxDiff = maxDiff
+ ])
@override_settings(USE_TZ=True)
def test_fix_default_value_tz(self):
@@ -377,8 +345,7 @@ class DecimalFieldTests(SimpleTestCase):
field = models.DecimalField()
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"DecimalFields must define a 'decimal_places' attribute.",
obj=field,
@@ -389,16 +356,14 @@ class DecimalFieldTests(SimpleTestCase):
obj=field,
id='fields.E132',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_negative_max_digits_and_decimal_places(self):
class Model(models.Model):
field = models.DecimalField(max_digits=-1, decimal_places=-1)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'decimal_places' must be a non-negative integer.",
obj=field,
@@ -409,16 +374,14 @@ class DecimalFieldTests(SimpleTestCase):
obj=field,
id='fields.E133',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_bad_values_of_max_digits_and_decimal_places(self):
class Model(models.Model):
field = models.DecimalField(max_digits="bad", decimal_places="bad")
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'decimal_places' must be a non-negative integer.",
obj=field,
@@ -429,32 +392,27 @@ class DecimalFieldTests(SimpleTestCase):
obj=field,
id='fields.E133',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_decimal_places_greater_than_max_digits(self):
class Model(models.Model):
field = models.DecimalField(max_digits=9, decimal_places=10)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'max_digits' must be greater or equal to 'decimal_places'.",
obj=field,
id='fields.E134',
),
- ]
- self.assertEqual(errors, expected)
+ ])
def test_valid_field(self):
class Model(models.Model):
field = models.DecimalField(max_digits=10, decimal_places=10)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = []
- self.assertEqual(errors, expected)
+ self.assertEqual(field.check(), [])
@isolate_apps('invalid_models_tests')
@@ -471,24 +429,20 @@ class FileFieldTests(SimpleTestCase):
field = models.FileField(upload_to='somewhere')
field = Model._meta.get_field('field')
- errors = field.check()
- expected = []
- self.assertEqual(errors, expected)
+ self.assertEqual(field.check(), [])
def test_primary_key(self):
class Model(models.Model):
field = models.FileField(primary_key=False, upload_to='somewhere')
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"'primary_key' is not a valid argument for a FileField.",
obj=field,
id='fields.E201',
)
- ]
- self.assertEqual(errors, expected)
+ ])
def test_upload_to_starts_with_slash(self):
class Model(models.Model):
@@ -524,15 +478,13 @@ class FilePathFieldTests(SimpleTestCase):
field = models.FilePathField(allow_files=False, allow_folders=False)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
"FilePathFields must have either 'allow_files' or 'allow_folders' set to True.",
obj=field,
id='fields.E140',
),
- ]
- self.assertEqual(errors, expected)
+ ])
@isolate_apps('invalid_models_tests')
@@ -543,16 +495,14 @@ class GenericIPAddressFieldTests(SimpleTestCase):
field = models.GenericIPAddressField(null=False, blank=True)
field = Model._meta.get_field('field')
- errors = field.check()
- expected = [
+ self.assertEqual(field.check(), [
Error(
('GenericIPAddressFields cannot have blank=True if null=False, '
'as blank values are stored as nulls.'),
obj=field,
id='fields.E150',
),
- ]
- self.assertEqual(errors, expected)
+ ])
@isolate_apps('invalid_models_tests')
@@ -590,21 +540,20 @@ class IntegerFieldTests(SimpleTestCase):
class Model(models.Model):
value = models.IntegerField(max_length=2)
- value = Model._meta.get_field('value')
- errors = Model.check()
- expected = [
+ field = Model._meta.get_field('value')
+ self.assertEqual(field.check(), [
DjangoWarning(
"'max_length' is ignored when used with IntegerField",
hint="Remove 'max_length' from field",
- obj=value,
+ obj=field,
id='fields.W122',
)
- ]
- self.assertEqual(errors, expected)
+ ])
@isolate_apps('invalid_models_tests')
class TimeFieldTests(TestCase):
+ maxDiff = None
def test_fix_default_value(self):
class Model(models.Model):
@@ -618,7 +567,7 @@ class TimeFieldTests(TestCase):
errors = field_dt.check()
errors.extend(field_t.check())
errors.extend(field_now.check()) # doesn't raise a warning
- expected = [
+ self.assertEqual(errors, [
DjangoWarning(
'Fixed default value provided.',
hint='It seems you set a fixed date / time / datetime '
@@ -637,11 +586,7 @@ class TimeFieldTests(TestCase):
obj=field_t,
id='fields.W161',
)
- ]
- maxDiff = self.maxDiff
- self.maxDiff = None
- self.assertEqual(errors, expected)
- self.maxDiff = maxDiff
+ ])
@override_settings(USE_TZ=True)
def test_fix_default_value_tz(self):