summaryrefslogtreecommitdiff
path: root/tests/model_inheritance
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2018-12-23 04:11:24 +0500
committerTim Graham <timograham@gmail.com>2018-12-22 18:11:24 -0500
commita68ea231012434b522ce45c513d84add516afa60 (patch)
tree2ee6b2653eb8a91c6cbf840494bc8a5640e9a2a9 /tests/model_inheritance
parentce8b65ac5e8e20912c36ab5c714ddf11de3b664c (diff)
downloaddjango-a68ea231012434b522ce45c513d84add516afa60.tar.gz
Fixed #29970, #30041 -- Made ModelBase.__new__() pass attrs without contribute_to_class() to type.__new__().
Diffstat (limited to 'tests/model_inheritance')
-rw-r--r--tests/model_inheritance/tests.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/tests/model_inheritance/tests.py b/tests/model_inheritance/tests.py
index 4e8e92a60c..5f89b4aa83 100644
--- a/tests/model_inheritance/tests.py
+++ b/tests/model_inheritance/tests.py
@@ -181,18 +181,33 @@ class ModelInheritanceTests(TestCase):
def test_init_subclass(self):
saved_kwargs = {}
- class A:
+ class A(models.Model):
def __init_subclass__(cls, **kwargs):
super().__init_subclass__()
saved_kwargs.update(kwargs)
kwargs = {'x': 1, 'y': 2, 'z': 3}
- class B(A, models.Model, **kwargs):
+ class B(A, **kwargs):
pass
self.assertEqual(saved_kwargs, kwargs)
+ @unittest.skipUnless(PY36, '__set_name__ is new in Python 3.6')
+ @isolate_apps('model_inheritance')
+ def test_set_name(self):
+ class ClassAttr:
+ called = None
+
+ def __set_name__(self_, owner, name):
+ self.assertIsNone(self_.called)
+ self_.called = (owner, name)
+
+ class A(models.Model):
+ attr = ClassAttr()
+
+ self.assertEqual(A.attr.called, (A, 'attr'))
+
class ModelInheritanceDataTests(TestCase):
@classmethod