diff options
author | Sergey Fedoseev <fedoseev.sergey@gmail.com> | 2018-12-23 04:11:24 +0500 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2018-12-22 18:11:24 -0500 |
commit | a68ea231012434b522ce45c513d84add516afa60 (patch) | |
tree | 2ee6b2653eb8a91c6cbf840494bc8a5640e9a2a9 /tests/model_inheritance | |
parent | ce8b65ac5e8e20912c36ab5c714ddf11de3b664c (diff) | |
download | django-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.py | 19 |
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 |