From 502e75f9ed5476ffe8229109acf0c23999d4b533 Mon Sep 17 00:00:00 2001 From: Ryan Hiebert Date: Mon, 29 Jun 2020 23:16:05 -0500 Subject: Fixed #31750 -- Made models.Field equality compare models for inherited fields. --- tests/model_fields/tests.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'tests/model_fields') diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py index b97c99d42d..af2634dd63 100644 --- a/tests/model_fields/tests.py +++ b/tests/model_fields/tests.py @@ -102,6 +102,36 @@ class BasicFieldTests(SimpleTestCase): name, path, args, kwargs = Nested.Field().deconstruct() self.assertEqual(path, 'model_fields.tests.Nested.Field') + def test_abstract_inherited_fields(self): + """Field instances from abstract models are not equal.""" + class AbstractModel(models.Model): + field = models.IntegerField() + + class Meta: + abstract = True + + class InheritAbstractModel1(AbstractModel): + pass + + class InheritAbstractModel2(AbstractModel): + pass + + abstract_model_field = AbstractModel._meta.get_field('field') + inherit1_model_field = InheritAbstractModel1._meta.get_field('field') + inherit2_model_field = InheritAbstractModel2._meta.get_field('field') + + self.assertNotEqual(abstract_model_field, inherit1_model_field) + self.assertNotEqual(abstract_model_field, inherit2_model_field) + self.assertNotEqual(inherit1_model_field, inherit2_model_field) + + self.assertLess(abstract_model_field, inherit1_model_field) + self.assertLess(abstract_model_field, inherit2_model_field) + self.assertLess(inherit1_model_field, inherit2_model_field) + + self.assertNotEqual(hash(abstract_model_field), hash(inherit1_model_field)) + self.assertNotEqual(hash(abstract_model_field), hash(inherit2_model_field)) + self.assertNotEqual(hash(inherit1_model_field), hash(inherit2_model_field)) + class ChoicesTests(SimpleTestCase): -- cgit v1.2.1