summaryrefslogtreecommitdiff
path: root/tests/model_fields
diff options
context:
space:
mode:
authorRyan Hiebert <ryan@ryanhiebert.com>2020-06-29 23:16:05 -0500
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-09-09 20:52:59 +0200
commit502e75f9ed5476ffe8229109acf0c23999d4b533 (patch)
tree88c45f3be8e0c439750b415b2c48a4f858f9309d /tests/model_fields
parent453967477e3ddae704cd739eac2449c0e13d464c (diff)
downloaddjango-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.py30
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):