diff options
author | Ryan Hiebert <ryan@ryanhiebert.com> | 2020-06-29 23:16:05 -0500 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-09-09 20:52:59 +0200 |
commit | 502e75f9ed5476ffe8229109acf0c23999d4b533 (patch) | |
tree | 88c45f3be8e0c439750b415b2c48a4f858f9309d /tests/model_fields | |
parent | 453967477e3ddae704cd739eac2449c0e13d464c (diff) | |
download | django-502e75f9ed5476ffe8229109acf0c23999d4b533.tar.gz |
Fixed #31750 -- Made models.Field equality compare models for inherited fields.
Diffstat (limited to 'tests/model_fields')
-rw-r--r-- | tests/model_fields/tests.py | 30 |
1 files changed, 30 insertions, 0 deletions
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): |