diff options
| author | Simon Charette <charette.s@gmail.com> | 2013-01-29 00:28:09 -0500 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2013-02-24 17:32:34 +0100 |
| commit | 6b03179e126d4df01623dccc162c1579f349e41e (patch) | |
| tree | eb42a64785e44a2543c891b98087c36324180698 /tests | |
| parent | e369dc28075b4331c125494fe7bd73855d73a0ce (diff) | |
Fixed #19688 -- Allow model subclassing with a custom metaclass using six.with_metaclass
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/modeltests/base/__init__.py | 0 | ||||
| -rw-r--r-- | tests/modeltests/base/models.py | 5 | ||||
| -rw-r--r-- | tests/modeltests/base/tests.py | 36 |
3 files changed, 41 insertions, 0 deletions
diff --git a/tests/modeltests/base/__init__.py b/tests/modeltests/base/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/modeltests/base/__init__.py diff --git a/tests/modeltests/base/models.py b/tests/modeltests/base/models.py new file mode 100644 index 0000000000..3d39302aba --- /dev/null +++ b/tests/modeltests/base/models.py @@ -0,0 +1,5 @@ +from django.db.models.base import ModelBase + + +class CustomBaseModel(ModelBase): + pass diff --git a/tests/modeltests/base/tests.py b/tests/modeltests/base/tests.py new file mode 100644 index 0000000000..6229b7a305 --- /dev/null +++ b/tests/modeltests/base/tests.py @@ -0,0 +1,36 @@ +from __future__ import unicode_literals + +from django.db import models +from django.test.testcases import SimpleTestCase +from django.utils import six +from django.utils.unittest import skipIf + +from .models import CustomBaseModel + + +class CustomBaseTest(SimpleTestCase): + + @skipIf(six.PY3, 'test metaclass definition under Python 2') + def test_py2_custom_base(self): + """ + Make sure models.Model can be subclassed with a valid custom base + using __metaclass__ + """ + try: + class MyModel(models.Model): + __metaclass__ = CustomBaseModel + except Exception: + self.fail("models.Model couldn't be subclassed with a valid " + "custom base using __metaclass__.") + + def test_six_custom_base(self): + """ + Make sure models.Model can be subclassed with a valid custom base + using `six.with_metaclass`. + """ + try: + class MyModel(six.with_metaclass(CustomBaseModel, models.Model)): + pass + except Exception: + self.fail("models.Model couldn't be subclassed with a valid " + "custom base using `six.with_metaclass`.") |
