Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Changed testing strategy used in 6b03179.

Avoid polluting the app cache as it causes unrelated test failures.

Refs #19688.
  • Loading branch information...
commit 7b49da1c3818cb90f95adaa0b18edaef5f088f16 1 parent 5eebb49
Aymeric Augustin aaugustin authored
Showing with 20 additions and 38 deletions.
  1. +20 −2 tests/modeltests/base/models.py
  2. +0 −36 tests/modeltests/base/tests.py
22 tests/modeltests/base/models.py
View
@@ -1,5 +1,23 @@
-from django.db.models.base import ModelBase
+from __future__ import unicode_literals
+from django.db import models
+from django.utils import six
-class CustomBaseModel(ModelBase):
+
+# The models definitions below used to crash. Generating models dynamically
+# at runtime is a bad idea because it pollutes the app cache. This doesn't
+# integrate well with the test suite but at least it prevents regressions.
+
+
+class CustomBaseModel(models.base.ModelBase):
pass
+
+
+class MyModel(six.with_metaclass(CustomBaseModel, models.Model)):
+ """Model subclass with a custom base using six.with_metaclass."""
+
+
+if not six.PY3:
+ class MyModel(models.Model):
+ """Model subclass with a custom base using __metaclass__."""
+ __metaclass__ = CustomBaseModel
36 tests/modeltests/base/tests.py
View
@@ -1,36 +0,0 @@
-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`.")
Please sign in to comment.
Something went wrong with that request. Please try again.