From f816ceedf1ae13bec22363f6d78de53d3f60c3e9 Mon Sep 17 00:00:00 2001
From: Adam Johnson <me@adamj.eu>
Date: Tue, 11 Jul 2017 10:53:22 +0200
Subject: [PATCH] Made assertions in invalid_models_tests consistent.

---
 .../test_backend_specific.py                  |   4 +-
 .../test_custom_fields.py                     |   3 +-
 tests/invalid_models_tests/test_models.py     | 187 +++++--------
 .../test_ordinary_fields.py                   | 161 ++++-------
 .../test_relative_fields.py                   | 256 ++++++------------
 5 files changed, 202 insertions(+), 409 deletions(-)

diff --git a/tests/invalid_models_tests/test_backend_specific.py b/tests/invalid_models_tests/test_backend_specific.py
index 0bdd8995b0..70c7d0b05a 100644
--- a/tests/invalid_models_tests/test_backend_specific.py
+++ b/tests/invalid_models_tests/test_backend_specific.py
@@ -25,6 +25,4 @@ class BackendSpecificChecksTests(SimpleTestCase):
 
         field = Model._meta.get_field('field')
         with mock.patch.object(connections['default'].validation, 'check_field', return_value=[error]):
-            errors = field.check()
-
-        self.assertEqual(errors, [error])
+            self.assertEqual(field.check(), [error])
diff --git a/tests/invalid_models_tests/test_custom_fields.py b/tests/invalid_models_tests/test_custom_fields.py
index 4c379e70f5..af14bae569 100644
--- a/tests/invalid_models_tests/test_custom_fields.py
+++ b/tests/invalid_models_tests/test_custom_fields.py
@@ -17,5 +17,4 @@ class CustomFieldTest(SimpleTestCase):
             other_field = models.IntegerField()
 
         field = Model._meta.get_field('field')
-        errors = field.check()
-        self.assertEqual(errors, [])
+        self.assertEqual(field.check(), [])
diff --git a/tests/invalid_models_tests/test_models.py b/tests/invalid_models_tests/test_models.py
index 65abd1807d..4a3e5e3a02 100644
--- a/tests/invalid_models_tests/test_models.py
+++ b/tests/invalid_models_tests/test_models.py
@@ -38,45 +38,39 @@ class IndexTogetherTests(SimpleTestCase):
             class Meta:
                 index_together = 42
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'index_together' must be a list or tuple.",
                 obj=Model,
                 id='models.E008',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_non_list(self):
         class Model(models.Model):
             class Meta:
                 index_together = 'not-a-list'
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'index_together' must be a list or tuple.",
                 obj=Model,
                 id='models.E008',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_list_containing_non_iterable(self):
         class Model(models.Model):
             class Meta:
                 index_together = [('a', 'b'), 42]
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "All 'index_together' elements must be lists or tuples.",
                 obj=Model,
                 id='models.E009',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_pointing_to_missing_field(self):
         class Model(models.Model):
@@ -85,15 +79,13 @@ class IndexTogetherTests(SimpleTestCase):
                     ["missing_field"],
                 ]
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'index_together' refers to the nonexistent field 'missing_field'.",
                 obj=Model,
                 id='models.E012',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_pointing_to_non_local_field(self):
         class Foo(models.Model):
@@ -107,8 +99,7 @@ class IndexTogetherTests(SimpleTestCase):
                     ["field2", "field1"],
                 ]
 
-        errors = Bar.check()
-        expected = [
+        self.assertEqual(Bar.check(), [
             Error(
                 "'index_together' refers to field 'field1' which is not "
                 "local to model 'Bar'.",
@@ -116,8 +107,7 @@ class IndexTogetherTests(SimpleTestCase):
                 obj=Bar,
                 id='models.E016',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_pointing_to_m2m_field(self):
         class Model(models.Model):
@@ -128,16 +118,14 @@ class IndexTogetherTests(SimpleTestCase):
                     ["m2m"],
                 ]
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'index_together' refers to a ManyToManyField 'm2m', but "
                 "ManyToManyFields are not permitted in 'index_together'.",
                 obj=Model,
                 id='models.E013',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
 
 # unique_together tests are very similar to index_together tests.
@@ -149,15 +137,13 @@ class UniqueTogetherTests(SimpleTestCase):
             class Meta:
                 unique_together = 42
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'unique_together' must be a list or tuple.",
                 obj=Model,
                 id='models.E010',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_list_containing_non_iterable(self):
         class Model(models.Model):
@@ -167,30 +153,26 @@ class UniqueTogetherTests(SimpleTestCase):
             class Meta:
                 unique_together = [('a', 'b'), 42]
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "All 'unique_together' elements must be lists or tuples.",
                 obj=Model,
                 id='models.E011',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_non_list(self):
         class Model(models.Model):
             class Meta:
                 unique_together = 'not-a-list'
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'unique_together' must be a list or tuple.",
                 obj=Model,
                 id='models.E010',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_valid_model(self):
         class Model(models.Model):
@@ -201,8 +183,7 @@ class UniqueTogetherTests(SimpleTestCase):
                 # unique_together can be a simple tuple
                 unique_together = ('one', 'two')
 
-        errors = Model.check()
-        self.assertEqual(errors, [])
+        self.assertEqual(Model.check(), [])
 
     def test_pointing_to_missing_field(self):
         class Model(models.Model):
@@ -211,15 +192,13 @@ class UniqueTogetherTests(SimpleTestCase):
                     ["missing_field"],
                 ]
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'unique_together' refers to the nonexistent field 'missing_field'.",
                 obj=Model,
                 id='models.E012',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_pointing_to_m2m(self):
         class Model(models.Model):
@@ -230,16 +209,14 @@ class UniqueTogetherTests(SimpleTestCase):
                     ["m2m"],
                 ]
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'unique_together' refers to a ManyToManyField 'm2m', but "
                 "ManyToManyFields are not permitted in 'unique_together'.",
                 obj=Model,
                 id='models.E013',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
 
 @isolate_apps('invalid_models_tests')
@@ -250,8 +227,7 @@ class FieldNamesTests(SimpleTestCase):
             field_ = models.CharField(max_length=10)
             m2m_ = models.ManyToManyField('self')
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 'Field names must not end with an underscore.',
                 obj=Model._meta.get_field('field_'),
@@ -262,8 +238,7 @@ class FieldNamesTests(SimpleTestCase):
                 obj=Model._meta.get_field('m2m_'),
                 id='fields.E001',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     max_column_name_length, column_limit_db_alias = get_max_column_name_length()
 
@@ -373,12 +348,7 @@ class FieldNamesTests(SimpleTestCase):
         long_field_name2 = 'b' * (self.max_column_name_length + 1)
         models.CharField(max_length=11).contribute_to_class(ModelWithLongField, long_field_name)
         models.CharField(max_length=11, db_column='vlmn').contribute_to_class(ModelWithLongField, long_field_name2)
-
-        errors = ModelWithLongField.check()
-
-        # Error because of the field with long name added to the model
-        # without specifying db_column
-        expected = [
+        self.assertEqual(ModelWithLongField.check(), [
             Error(
                 'Autogenerated column name too long for field "%s". '
                 'Maximum length is "%s" for database "%s".'
@@ -387,37 +357,31 @@ class FieldNamesTests(SimpleTestCase):
                 obj=ModelWithLongField,
                 id='models.E018',
             )
-        ]
-
-        self.assertEqual(errors, expected)
+        ])
 
     def test_including_separator(self):
         class Model(models.Model):
             some__field = models.IntegerField()
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 'Field names must not contain "__".',
                 obj=Model._meta.get_field('some__field'),
                 id='fields.E002',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_pk(self):
         class Model(models.Model):
             pk = models.IntegerField()
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'pk' is a reserved word that cannot be used as a field name.",
                 obj=Model._meta.get_field('pk'),
                 id='fields.E003',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
 
 @isolate_apps('invalid_models_tests')
@@ -430,16 +394,14 @@ class ShadowingFieldsTests(SimpleTestCase):
         class Child(Parent):
             child = models.CharField(max_length=100)
 
-        errors = Child.check()
-        expected = [
+        self.assertEqual(Child.check(), [
             Error(
                 "The field 'child' clashes with the field "
                 "'child' from model 'invalid_models_tests.parent'.",
                 obj=Child._meta.get_field('child'),
                 id='models.E006',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_multiinheritance_clash(self):
         class Mother(models.Model):
@@ -453,8 +415,7 @@ class ShadowingFieldsTests(SimpleTestCase):
             # both parents define these fields.
             pass
 
-        errors = Child.check()
-        expected = [
+        self.assertEqual(Child.check(), [
             Error(
                 "The field 'id' from parent model "
                 "'invalid_models_tests.mother' clashes with the field 'id' "
@@ -469,8 +430,7 @@ class ShadowingFieldsTests(SimpleTestCase):
                 obj=Child,
                 id='models.E005',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_inheritance_clash(self):
         class Parent(models.Model):
@@ -484,16 +444,14 @@ class ShadowingFieldsTests(SimpleTestCase):
             # This field clashes with parent "f_id" field.
             f = models.ForeignKey(Target, models.CASCADE)
 
-        errors = Child.check()
-        expected = [
+        self.assertEqual(Child.check(), [
             Error(
                 "The field 'f' clashes with the field 'f_id' "
                 "from model 'invalid_models_tests.parent'.",
                 obj=Child._meta.get_field('f'),
                 id='models.E006',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_multigeneration_inheritance(self):
         class GrandParent(models.Model):
@@ -508,16 +466,14 @@ class ShadowingFieldsTests(SimpleTestCase):
         class GrandChild(Child):
             clash = models.IntegerField()
 
-        errors = GrandChild.check()
-        expected = [
+        self.assertEqual(GrandChild.check(), [
             Error(
                 "The field 'clash' clashes with the field 'clash' "
                 "from model 'invalid_models_tests.grandparent'.",
                 obj=GrandChild._meta.get_field('clash'),
                 id='models.E006',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_id_clash(self):
         class Target(models.Model):
@@ -527,16 +483,14 @@ class ShadowingFieldsTests(SimpleTestCase):
             fk = models.ForeignKey(Target, models.CASCADE)
             fk_id = models.IntegerField()
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "The field 'fk_id' clashes with the field 'fk' from model "
                 "'invalid_models_tests.model'.",
                 obj=Model._meta.get_field('fk_id'),
                 id='models.E006',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
 
 @isolate_apps('invalid_models_tests')
@@ -548,32 +502,28 @@ class OtherModelTests(SimpleTestCase):
         class Model(models.Model):
             id = invalid_id
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'id' can only be used as a field name if the field also sets "
                 "'primary_key=True'.",
                 obj=Model,
                 id='models.E004',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_ordering_non_iterable(self):
         class Model(models.Model):
             class Meta:
                 ordering = "missing_field"
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'ordering' must be a tuple or list "
                 "(even if you want to order by only one field).",
                 obj=Model,
                 id='models.E014',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_just_ordering_no_errors(self):
         class Model(models.Model):
@@ -608,15 +558,13 @@ class OtherModelTests(SimpleTestCase):
                 order_with_respect_to = 'question'
                 ordering = ['order']
 
-        errors = Answer.check()
-        expected = [
+        self.assertEqual(Answer.check(), [
             Error(
                 "'ordering' and 'order_with_respect_to' cannot be used together.",
                 obj=Answer,
                 id='models.E021',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_non_valid(self):
         class RelationModel(models.Model):
@@ -628,30 +576,26 @@ class OtherModelTests(SimpleTestCase):
             class Meta:
                 ordering = ['relation']
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'ordering' refers to the nonexistent field 'relation'.",
                 obj=Model,
                 id='models.E015',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_ordering_pointing_to_missing_field(self):
         class Model(models.Model):
             class Meta:
                 ordering = ("missing_field",)
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'ordering' refers to the nonexistent field 'missing_field'.",
                 obj=Model,
                 id='models.E015',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_ordering_pointing_to_missing_foreignkey_field(self):
         # refs #22711
@@ -662,15 +606,13 @@ class OtherModelTests(SimpleTestCase):
             class Meta:
                 ordering = ("missing_fk_field_id",)
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'ordering' refers to the nonexistent field 'missing_fk_field_id'.",
                 obj=Model,
                 id='models.E015',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_ordering_pointing_to_existing_foreignkey_field(self):
         # refs #22711
@@ -731,14 +673,12 @@ class OtherModelTests(SimpleTestCase):
             class Meta:
                 swappable = 'TEST_SWAPPED_MODEL_BAD_VALUE'
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'TEST_SWAPPED_MODEL_BAD_VALUE' is not of the form 'app_label.app_name'.",
                 id='models.E001',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     @override_settings(TEST_SWAPPED_MODEL_BAD_MODEL='not_an_app.Target')
     def test_swappable_missing_app(self):
@@ -746,15 +686,13 @@ class OtherModelTests(SimpleTestCase):
             class Meta:
                 swappable = 'TEST_SWAPPED_MODEL_BAD_MODEL'
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "'TEST_SWAPPED_MODEL_BAD_MODEL' references 'not_an_app.Target', "
                 'which has not been installed, or is abstract.',
                 id='models.E002',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_two_m2m_through_same_relationship(self):
         class Person(models.Model):
@@ -768,16 +706,14 @@ class OtherModelTests(SimpleTestCase):
             person = models.ForeignKey(Person, models.CASCADE)
             group = models.ForeignKey(Group, models.CASCADE)
 
-        errors = Group.check()
-        expected = [
+        self.assertEqual(Group.check(), [
             Error(
                 "The model has two many-to-many relations through "
                 "the intermediate model 'invalid_models_tests.Membership'.",
                 obj=Group,
                 id='models.E003',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_missing_parent_link(self):
         msg = 'Add parent_link=True to invalid_models_tests.ParkingLot.parent.'
@@ -927,7 +863,7 @@ class OtherModelTests(SimpleTestCase):
         post_init.connect(DummyClass(), sender='missing-app.Model', apps=apps)
         post_init.connect(DummyClass().dummy_method, sender='missing-app.Model', apps=apps)
 
-        expected = [
+        self.assertEqual(_check_lazy_references(apps), [
             Error(
                 "%r contains a lazy reference to auth.imaginarymodel, "
                 "but app 'auth' doesn't provide model 'imaginarymodel'." % dummy_function,
@@ -972,5 +908,4 @@ class OtherModelTests(SimpleTestCase):
                 obj='invalid_models_tests.test_models',
                 id='signals.E001',
             ),
-        ]
-        self.assertEqual(_check_lazy_references(apps), expected)
+        ])
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):
diff --git a/tests/invalid_models_tests/test_relative_fields.py b/tests/invalid_models_tests/test_relative_fields.py
index 023e201a8a..cf1b3f737b 100644
--- a/tests/invalid_models_tests/test_relative_fields.py
+++ b/tests/invalid_models_tests/test_relative_fields.py
@@ -17,8 +17,7 @@ class RelativeFieldTests(SimpleTestCase):
             field = models.ForeignKey(Target, models.CASCADE, related_name='+')
 
         field = Model._meta.get_field('field')
-        errors = field.check()
-        self.assertEqual(errors, [])
+        self.assertEqual(field.check(), [])
 
     def test_foreign_key_to_missing_model(self):
         # Model names are resolved when a model is being created, so we cannot
@@ -28,16 +27,14 @@ class RelativeFieldTests(SimpleTestCase):
             foreign_key = models.ForeignKey('Rel1', models.CASCADE)
 
         field = Model._meta.get_field('foreign_key')
-        errors = field.check()
-        expected = [
+        self.assertEqual(field.check(), [
             Error(
                 "Field defines a relation with model 'Rel1', "
                 "which is either not installed, or is abstract.",
                 obj=field,
                 id='fields.E300',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     @isolate_apps('invalid_models_tests')
     def test_foreign_key_to_isolate_apps_model(self):
@@ -59,16 +56,14 @@ class RelativeFieldTests(SimpleTestCase):
             m2m = models.ManyToManyField("Rel2")
 
         field = Model._meta.get_field('m2m')
-        errors = field.check(from_model=Model)
-        expected = [
+        self.assertEqual(field.check(from_model=Model), [
             Error(
                 "Field defines a relation with model 'Rel2', "
                 "which is either not installed, or is abstract.",
                 obj=field,
                 id='fields.E300',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     @isolate_apps('invalid_models_tests')
     def test_many_to_many_to_isolate_apps_model(self):
@@ -112,10 +107,8 @@ class RelativeFieldTests(SimpleTestCase):
             model = models.ForeignKey('Model', models.CASCADE)
             modelm2m = models.ForeignKey('ModelM2M', models.CASCADE)
 
-        errors = ModelM2M.check()
         field = ModelM2M._meta.get_field('m2m')
-
-        expected = [
+        self.assertEqual(ModelM2M.check(), [
             DjangoWarning(
                 'null has no effect on ManyToManyField.',
                 obj=field,
@@ -132,9 +125,7 @@ class RelativeFieldTests(SimpleTestCase):
                 obj=field,
                 id='fields.W343',
             ),
-        ]
-
-        self.assertEqual(errors, expected)
+        ])
 
     def test_ambiguous_relationship_model(self):
 
@@ -151,8 +142,7 @@ class RelativeFieldTests(SimpleTestCase):
             second_model = models.ForeignKey(Group, models.CASCADE)
 
         field = Group._meta.get_field('field')
-        errors = field.check(from_model=Group)
-        expected = [
+        self.assertEqual(field.check(from_model=Group), [
             Error(
                 "The model is used as an intermediate model by "
                 "'invalid_models_tests.Group.field', but it has more than one "
@@ -166,8 +156,7 @@ class RelativeFieldTests(SimpleTestCase):
                 obj=field,
                 id='fields.E335',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_relationship_model_with_foreign_key_to_wrong_model(self):
         class WrongModel(models.Model):
@@ -185,8 +174,7 @@ class RelativeFieldTests(SimpleTestCase):
             # The last foreign key should point to Group model.
 
         field = Group._meta.get_field('members')
-        errors = field.check(from_model=Group)
-        expected = [
+        self.assertEqual(field.check(from_model=Group), [
             Error(
                 "The model is used as an intermediate model by "
                 "'invalid_models_tests.Group.members', but it does not "
@@ -194,8 +182,7 @@ class RelativeFieldTests(SimpleTestCase):
                 obj=InvalidRelationship,
                 id='fields.E336',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_relationship_model_missing_foreign_key(self):
         class Person(models.Model):
@@ -209,8 +196,7 @@ class RelativeFieldTests(SimpleTestCase):
             # No foreign key to Person
 
         field = Group._meta.get_field('members')
-        errors = field.check(from_model=Group)
-        expected = [
+        self.assertEqual(field.check(from_model=Group), [
             Error(
                 "The model is used as an intermediate model by "
                 "'invalid_models_tests.Group.members', but it does not have "
@@ -218,8 +204,7 @@ class RelativeFieldTests(SimpleTestCase):
                 obj=InvalidRelationship,
                 id='fields.E336',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_missing_relationship_model(self):
         class Person(models.Model):
@@ -229,16 +214,14 @@ class RelativeFieldTests(SimpleTestCase):
             members = models.ManyToManyField('Person', through="MissingM2MModel")
 
         field = Group._meta.get_field('members')
-        errors = field.check(from_model=Group)
-        expected = [
+        self.assertEqual(field.check(from_model=Group), [
             Error(
                 "Field specifies a many-to-many relation through model "
                 "'MissingM2MModel', which has not been installed.",
                 obj=field,
                 id='fields.E331',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_missing_relationship_model_on_model_check(self):
         class Person(models.Model):
@@ -285,15 +268,13 @@ class RelativeFieldTests(SimpleTestCase):
             second = models.ForeignKey(Person, models.CASCADE, related_name="rel_to_set")
 
         field = Person._meta.get_field('friends')
-        errors = field.check(from_model=Person)
-        expected = [
+        self.assertEqual(field.check(from_model=Person), [
             Error(
                 'Many-to-many fields with intermediate tables must not be symmetrical.',
                 obj=field,
                 id='fields.E332',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_too_many_foreign_keys_in_self_referential_model(self):
         class Person(models.Model):
@@ -305,8 +286,7 @@ class RelativeFieldTests(SimpleTestCase):
             third = models.ForeignKey(Person, models.CASCADE, related_name="too_many_by_far")
 
         field = Person._meta.get_field('friends')
-        errors = field.check(from_model=Person)
-        expected = [
+        self.assertEqual(field.check(from_model=Person), [
             Error(
                 "The model is used as an intermediate model by "
                 "'invalid_models_tests.Person.friends', but it has more than two "
@@ -317,8 +297,7 @@ class RelativeFieldTests(SimpleTestCase):
                 obj=InvalidRelationship,
                 id='fields.E333',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_symmetric_self_reference_with_intermediate_table(self):
         class Person(models.Model):
@@ -330,15 +309,13 @@ class RelativeFieldTests(SimpleTestCase):
             second = models.ForeignKey(Person, models.CASCADE, related_name="rel_to_set")
 
         field = Person._meta.get_field('friends')
-        errors = field.check(from_model=Person)
-        expected = [
+        self.assertEqual(field.check(from_model=Person), [
             Error(
                 'Many-to-many fields with intermediate tables must not be symmetrical.',
                 obj=field,
                 id='fields.E332',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_symmetric_self_reference_with_intermediate_table_and_through_fields(self):
         """
@@ -360,15 +337,13 @@ class RelativeFieldTests(SimpleTestCase):
             referee = models.ForeignKey(Person, models.CASCADE, related_name="referred")
 
         field = Person._meta.get_field('friends')
-        errors = field.check(from_model=Person)
-        expected = [
+        self.assertEqual(field.check(from_model=Person), [
             Error(
                 'Many-to-many fields with intermediate tables must not be symmetrical.',
                 obj=field,
                 id='fields.E332',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_foreign_key_to_abstract_model(self):
         class AbstractModel(models.Model):
@@ -390,8 +365,7 @@ class RelativeFieldTests(SimpleTestCase):
         )
         for field in fields:
             expected_error.obj = field
-            errors = field.check()
-            self.assertEqual(errors, [expected_error])
+            self.assertEqual(field.check(), [expected_error])
 
     def test_m2m_to_abstract_model(self):
         class AbstractModel(models.Model):
@@ -413,8 +387,7 @@ class RelativeFieldTests(SimpleTestCase):
         )
         for field in fields:
             expected_error.obj = field
-            errors = field.check(from_model=Model)
-            self.assertEqual(errors, [expected_error])
+            self.assertEqual(field.check(from_model=Model), [expected_error])
 
     def test_unique_m2m(self):
         class Person(models.Model):
@@ -424,15 +397,13 @@ class RelativeFieldTests(SimpleTestCase):
             members = models.ManyToManyField('Person', unique=True)
 
         field = Group._meta.get_field('members')
-        errors = field.check(from_model=Group)
-        expected = [
+        self.assertEqual(field.check(from_model=Group), [
             Error(
                 'ManyToManyFields cannot be unique.',
                 obj=field,
                 id='fields.E330',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_foreign_key_to_non_unique_field(self):
         class Target(models.Model):
@@ -442,15 +413,13 @@ class RelativeFieldTests(SimpleTestCase):
             foreign_key = models.ForeignKey('Target', models.CASCADE, to_field='bad')
 
         field = Model._meta.get_field('foreign_key')
-        errors = field.check()
-        expected = [
+        self.assertEqual(field.check(), [
             Error(
                 "'Target.bad' must set unique=True because it is referenced by a foreign key.",
                 obj=field,
                 id='fields.E311',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_foreign_key_to_non_unique_field_under_explicit_model(self):
         class Target(models.Model):
@@ -460,15 +429,13 @@ class RelativeFieldTests(SimpleTestCase):
             field = models.ForeignKey(Target, models.CASCADE, to_field='bad')
 
         field = Model._meta.get_field('field')
-        errors = field.check()
-        expected = [
+        self.assertEqual(field.check(), [
             Error(
                 "'Target.bad' must set unique=True because it is referenced by a foreign key.",
                 obj=field,
                 id='fields.E311',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_foreign_object_to_non_unique_fields(self):
         class Person(models.Model):
@@ -488,8 +455,7 @@ class RelativeFieldTests(SimpleTestCase):
             )
 
         field = MMembership._meta.get_field('person')
-        errors = field.check()
-        expected = [
+        self.assertEqual(field.check(), [
             Error(
                 "No subset of the fields 'country_id', 'city_id' on model 'Person' is unique.",
                 hint=(
@@ -499,8 +465,7 @@ class RelativeFieldTests(SimpleTestCase):
                 obj=field,
                 id='fields.E310',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_on_delete_set_null_on_non_nullable_field(self):
         class Person(models.Model):
@@ -510,16 +475,14 @@ class RelativeFieldTests(SimpleTestCase):
             foreign_key = models.ForeignKey('Person', models.SET_NULL)
 
         field = Model._meta.get_field('foreign_key')
-        errors = field.check()
-        expected = [
+        self.assertEqual(field.check(), [
             Error(
                 'Field specifies on_delete=SET_NULL, but cannot be null.',
                 hint='Set null=True argument on the field, or change the on_delete rule.',
                 obj=field,
                 id='fields.E320',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_on_delete_set_default_without_default_value(self):
         class Person(models.Model):
@@ -529,16 +492,14 @@ class RelativeFieldTests(SimpleTestCase):
             foreign_key = models.ForeignKey('Person', models.SET_DEFAULT)
 
         field = Model._meta.get_field('foreign_key')
-        errors = field.check()
-        expected = [
+        self.assertEqual(field.check(), [
             Error(
                 'Field specifies on_delete=SET_DEFAULT, but has no default value.',
                 hint='Set a default value, or change the on_delete rule.',
                 obj=field,
                 id='fields.E321',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     @skipIfDBFeature('interprets_empty_strings_as_nulls')
     def test_nullable_primary_key(self):
@@ -546,16 +507,14 @@ class RelativeFieldTests(SimpleTestCase):
             field = models.IntegerField(primary_key=True, null=True)
 
         field = Model._meta.get_field('field')
-        errors = field.check()
-        expected = [
+        self.assertEqual(field.check(), [
             Error(
                 'Primary keys must not have null=True.',
                 hint='Set null=False on the field, or remove primary_key=True argument.',
                 obj=field,
                 id='fields.E007',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_not_swapped_model(self):
         class SwappableModel(models.Model):
@@ -635,8 +594,7 @@ class RelativeFieldTests(SimpleTestCase):
 
         for field in fields:
             expected_error.obj = field
-            errors = field.check(from_model=Model)
-            self.assertEqual(errors, [expected_error])
+            self.assertEqual(field.check(from_model=Model), [expected_error])
 
     def test_related_field_has_invalid_related_name(self):
         digit = 0
@@ -667,8 +625,7 @@ class RelativeFieldTests(SimpleTestCase):
             })
 
             field = Child._meta.get_field('parent')
-            errors = Child.check()
-            expected = [
+            self.assertEqual(Child.check(), [
                 Error(
                     "The name '%s' is invalid related_name for field Child%s.parent"
                     % (invalid_related_name, invalid_related_name),
@@ -676,8 +633,7 @@ class RelativeFieldTests(SimpleTestCase):
                     obj=field,
                     id='fields.E306',
                 ),
-            ]
-            self.assertEqual(errors, expected)
+            ])
 
     def test_related_field_has_valid_related_name(self):
         lowercase = 'a'
@@ -704,9 +660,7 @@ class RelativeFieldTests(SimpleTestCase):
                 'parent': models.ForeignKey('Parent', models.CASCADE, related_name=related_name),
                 '__module__': Parent.__module__,
             })
-
-            errors = Child.check()
-            self.assertFalse(errors)
+            self.assertEqual(Child.check(), [])
 
     def test_to_fields_exist(self):
         class Parent(models.Model):
@@ -723,7 +677,7 @@ class RelativeFieldTests(SimpleTestCase):
             )
 
         field = Child._meta.get_field('parent')
-        expected = [
+        self.assertEqual(field.check(), [
             Error(
                 "The to_field 'a' doesn't exist on the related model 'invalid_models_tests.Parent'.",
                 obj=field,
@@ -734,8 +688,7 @@ class RelativeFieldTests(SimpleTestCase):
                 obj=field,
                 id='fields.E312',
             ),
-        ]
-        self.assertEqual(field.check(), expected)
+        ])
 
     def test_to_fields_not_checked_if_related_model_doesnt_exist(self):
         class Child(models.Model):
@@ -828,8 +781,7 @@ class AccessorClashTests(SimpleTestCase):
         class Model(models.Model):
             rel = relative
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.rel' clashes with field name 'Target.model_set'.",
                 hint=("Rename field 'Target.model_set', or add/change "
@@ -838,8 +790,7 @@ class AccessorClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('rel'),
                 id='fields.E302',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_clash_between_accessors(self):
         class Target(models.Model):
@@ -849,8 +800,7 @@ class AccessorClashTests(SimpleTestCase):
             foreign = models.ForeignKey(Target, models.CASCADE)
             m2m = models.ManyToManyField(Target)
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.foreign' clashes with reverse accessor for 'Model.m2m'.",
                 hint=(
@@ -869,8 +819,7 @@ class AccessorClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('m2m'),
                 id='fields.E304',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_m2m_to_m2m_with_inheritance(self):
         """ Ref #22047. """
@@ -887,8 +836,7 @@ class AccessorClashTests(SimpleTestCase):
         class Child(Parent):
             pass
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.children' clashes with field name 'Child.m2m_clash'.",
                 hint=(
@@ -898,8 +846,7 @@ class AccessorClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('children'),
                 id='fields.E302',
             )
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_no_clash_for_hidden_related_name(self):
         class Stub(models.Model):
@@ -960,8 +907,7 @@ class ReverseQueryNameClashTests(SimpleTestCase):
         class Model(models.Model):
             rel = relative
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse query name for 'Model.rel' clashes with field name 'Target.model'.",
                 hint=(
@@ -971,8 +917,7 @@ class ReverseQueryNameClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('rel'),
                 id='fields.E303',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
 
 @isolate_apps('invalid_models_tests')
@@ -1018,8 +963,7 @@ class ExplicitRelatedNameClashTests(SimpleTestCase):
         class Model(models.Model):
             rel = relative
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.rel' clashes with field name 'Target.clash'.",
                 hint=(
@@ -1038,8 +982,7 @@ class ExplicitRelatedNameClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('rel'),
                 id='fields.E303',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
 
 @isolate_apps('invalid_models_tests')
@@ -1126,8 +1069,7 @@ class ExplicitRelatedQueryNameClashTests(SimpleTestCase):
         class Model(models.Model):
             rel = relative
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse query name for 'Model.rel' clashes with field name 'Target.clash'.",
                 hint=(
@@ -1137,8 +1079,7 @@ class ExplicitRelatedQueryNameClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('rel'),
                 id='fields.E303',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
 
 @isolate_apps('invalid_models_tests')
@@ -1149,8 +1090,7 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
             first_m2m = models.ManyToManyField('self', symmetrical=False)
             second_m2m = models.ManyToManyField('self', symmetrical=False)
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.first_m2m' clashes with reverse accessor for 'Model.second_m2m'.",
                 hint=(
@@ -1169,15 +1109,13 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('second_m2m'),
                 id='fields.E304',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_accessor_clash(self):
         class Model(models.Model):
             model_set = models.ManyToManyField("self", symmetrical=False)
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.model_set' clashes with field name 'Model.model_set'.",
                 hint=(
@@ -1187,15 +1125,13 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('model_set'),
                 id='fields.E302',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_reverse_query_name_clash(self):
         class Model(models.Model):
             model = models.ManyToManyField("self", symmetrical=False)
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse query name for 'Model.model' clashes with field name 'Model.model'.",
                 hint=(
@@ -1205,16 +1141,14 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('model'),
                 id='fields.E303',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_clash_under_explicit_related_name(self):
         class Model(models.Model):
             clash = models.IntegerField()
             m2m = models.ManyToManyField("self", symmetrical=False, related_name='clash')
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.m2m' clashes with field name 'Model.clash'.",
                 hint=(
@@ -1233,16 +1167,14 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('m2m'),
                 id='fields.E303',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_valid_model(self):
         class Model(models.Model):
             first = models.ManyToManyField("self", symmetrical=False, related_name='first_accessor')
             second = models.ManyToManyField("self", symmetrical=False, related_name='second_accessor')
 
-        errors = Model.check()
-        self.assertEqual(errors, [])
+        self.assertEqual(Model.check(), [])
 
 
 @isolate_apps('invalid_models_tests')
@@ -1252,8 +1184,7 @@ class SelfReferentialFKClashTests(SimpleTestCase):
         class Model(models.Model):
             model_set = models.ForeignKey("Model", models.CASCADE)
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.model_set' clashes with field name 'Model.model_set'.",
                 hint=(
@@ -1264,15 +1195,13 @@ class SelfReferentialFKClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('model_set'),
                 id='fields.E302',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_reverse_query_name_clash(self):
         class Model(models.Model):
             model = models.ForeignKey("Model", models.CASCADE)
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse query name for 'Model.model' clashes with field name 'Model.model'.",
                 hint=(
@@ -1282,16 +1211,14 @@ class SelfReferentialFKClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('model'),
                 id='fields.E303',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
     def test_clash_under_explicit_related_name(self):
         class Model(models.Model):
             clash = models.CharField(max_length=10)
             foreign = models.ForeignKey("Model", models.CASCADE, related_name='clash')
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.foreign' clashes with field name 'Model.clash'.",
                 hint=(
@@ -1310,8 +1237,7 @@ class SelfReferentialFKClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('foreign'),
                 id='fields.E303',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
 
 @isolate_apps('invalid_models_tests')
@@ -1336,8 +1262,7 @@ class ComplexClashTests(SimpleTestCase):
             m2m_1 = models.ManyToManyField(Target, related_name='id')
             m2m_2 = models.ManyToManyField(Target, related_name='src_safe')
 
-        errors = Model.check()
-        expected = [
+        self.assertEqual(Model.check(), [
             Error(
                 "Reverse accessor for 'Model.foreign_1' clashes with field name 'Target.id'.",
                 hint=("Rename field 'Target.id', or add/change a related_name "
@@ -1425,8 +1350,7 @@ class ComplexClashTests(SimpleTestCase):
                 obj=Model._meta.get_field('m2m_2'),
                 id='fields.E305',
             ),
-        ]
-        self.assertEqual(errors, expected)
+        ])
 
 
 @isolate_apps('invalid_models_tests')
@@ -1459,8 +1383,7 @@ class M2mThroughFieldsTests(SimpleTestCase):
             inviter = models.ForeignKey(Fan, models.CASCADE, related_name='+')
 
         field = Event._meta.get_field('invitees')
-        errors = field.check(from_model=Event)
-        expected = [
+        self.assertEqual(field.check(from_model=Event), [
             Error(
                 "'Invitation.invitee' is not a foreign key to 'Event'.",
                 hint="Did you mean one of the following foreign keys to 'Event': event?",
@@ -1473,8 +1396,7 @@ class M2mThroughFieldsTests(SimpleTestCase):
                 obj=field,
                 id='fields.E339',
             ),
-        ]
-        self.assertEqual(expected, errors)
+        ])
 
     def test_invalid_field(self):
         """
@@ -1497,8 +1419,7 @@ class M2mThroughFieldsTests(SimpleTestCase):
             inviter = models.ForeignKey(Fan, models.CASCADE, related_name='+')
 
         field = Event._meta.get_field('invitees')
-        errors = field.check(from_model=Event)
-        expected = [
+        self.assertEqual(field.check(from_model=Event), [
             Error(
                 "The intermediary model 'invalid_models_tests.Invitation' has no field 'invalid_field_1'.",
                 hint="Did you mean one of the following foreign keys to 'Event': event?",
@@ -1511,8 +1432,7 @@ class M2mThroughFieldsTests(SimpleTestCase):
                 obj=field,
                 id='fields.E338',
             ),
-        ]
-        self.assertEqual(expected, errors)
+        ])
 
     def test_explicit_field_names(self):
         """
@@ -1531,16 +1451,16 @@ class M2mThroughFieldsTests(SimpleTestCase):
             inviter = models.ForeignKey(Fan, models.CASCADE, related_name='+')
 
         field = Event._meta.get_field('invitees')
-        errors = field.check(from_model=Event)
-        expected = [
+        self.assertEqual(field.check(from_model=Event), [
             Error(
                 "Field specifies 'through_fields' but does not provide the names "
                 "of the two link fields that should be used for the relation "
                 "through model 'invalid_models_tests.Invitation'.",
                 hint="Make sure you specify 'through_fields' as through_fields=('field1', 'field2')",
                 obj=field,
-                id='fields.E337')]
-        self.assertEqual(expected, errors)
+                id='fields.E337',
+            ),
+        ])
 
     def test_superset_foreign_object(self):
         class Parent(models.Model):
@@ -1564,8 +1484,7 @@ class M2mThroughFieldsTests(SimpleTestCase):
             )
 
         field = Child._meta.get_field('parent')
-        errors = field.check(from_model=Child)
-        expected = [
+        self.assertEqual(field.check(from_model=Child), [
             Error(
                 "No subset of the fields 'a', 'b' on model 'Parent' is unique.",
                 hint=(
@@ -1575,8 +1494,7 @@ class M2mThroughFieldsTests(SimpleTestCase):
                 obj=field,
                 id='fields.E310',
             ),
-        ]
-        self.assertEqual(expected, errors)
+        ])
 
     def test_intersection_foreign_object(self):
         class Parent(models.Model):
@@ -1602,8 +1520,7 @@ class M2mThroughFieldsTests(SimpleTestCase):
             )
 
         field = Child._meta.get_field('parent')
-        errors = field.check(from_model=Child)
-        expected = [
+        self.assertEqual(field.check(from_model=Child), [
             Error(
                 "No subset of the fields 'a', 'b', 'd' on model 'Parent' is unique.",
                 hint=(
@@ -1613,5 +1530,4 @@ class M2mThroughFieldsTests(SimpleTestCase):
                 obj=field,
                 id='fields.E310',
             ),
-        ]
-        self.assertEqual(expected, errors)
+        ])