summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2014-04-21 11:41:30 +0200
committerAymeric Augustin <aymeric.augustin@m4x.org>2014-04-21 11:43:08 +0200
commit3f76339355c1fe550dedf676feddd42a5d48be58 (patch)
tree0498fa3033274e74addeb5df5462663b539df6ad
parent471fb04a307870794e3cefb1177405b506ee1a0a (diff)
Fixed #22402 -- Consolidated model_inheritance tests.
The model_inheritance_same_model_name tests couldn't be run without the model_inheritance tests. Make the problem go away by merging them. Thanks timo for the report.
-rw-r--r--tests/model_inheritance/same_model_name/__init__.py (renamed from tests/model_inheritance_same_model_name/__init__.py)0
-rw-r--r--tests/model_inheritance/same_model_name/models.py (renamed from tests/model_inheritance_same_model_name/models.py)10
-rw-r--r--tests/model_inheritance/tests.py42
-rw-r--r--tests/model_inheritance_same_model_name/tests.py36
4 files changed, 43 insertions, 45 deletions
diff --git a/tests/model_inheritance_same_model_name/__init__.py b/tests/model_inheritance/same_model_name/__init__.py
index e69de29bb2..e69de29bb2 100644
--- a/tests/model_inheritance_same_model_name/__init__.py
+++ b/tests/model_inheritance/same_model_name/__init__.py
diff --git a/tests/model_inheritance_same_model_name/models.py b/tests/model_inheritance/same_model_name/models.py
index a8c051facf..307a505ee6 100644
--- a/tests/model_inheritance_same_model_name/models.py
+++ b/tests/model_inheritance/same_model_name/models.py
@@ -1,9 +1,8 @@
"""
-XX. Model inheritance
-Model inheritance across apps can result in models with the same name resulting
-in the need for an %(app_label)s format string. This app specifically tests
-this feature by redefining the Copy model from model_inheritance/models.py
+Model inheritance across apps can result in models with the same name,
+requiring an %(app_label)s format string. This app tests this feature by
+redefining the Copy model from model_inheritance/models.py.
"""
from django.db import models
@@ -12,9 +11,6 @@ from model_inheritance.models import NamedURL
from django.utils.encoding import python_2_unicode_compatible
-#
-# Abstract base classes with related models
-#
@python_2_unicode_compatible
class Copy(NamedURL):
content = models.TextField()
diff --git a/tests/model_inheritance/tests.py b/tests/model_inheritance/tests.py
index ebcfe1154e..50cdf31b87 100644
--- a/tests/model_inheritance/tests.py
+++ b/tests/model_inheritance/tests.py
@@ -3,15 +3,16 @@ from __future__ import unicode_literals
from operator import attrgetter
from django.core.exceptions import FieldError
+from django.core.management import call_command
from django.db import connection
from django.test import TestCase
-from django.test.utils import CaptureQueriesContext
+from django.test.utils import CaptureQueriesContext, override_settings
from django.utils import six
from .models import (
Chef, CommonInfo, ItalianRestaurant, ParkingLot, Place, Post,
Restaurant, Student, Supplier, Worker, MixinModel,
- Title, Base, SubBase)
+ Title, Copy, Base, SubBase)
class ModelInheritanceTests(TestCase):
@@ -339,3 +340,40 @@ class ModelInheritanceTests(TestCase):
# accidentally found).
self.assertQuerysetEqual(
s.titles.all(), [])
+
+
+class InheritanceSameModelNameTests(TestCase):
+
+ def setUp(self):
+ # The Title model has distinct accessors for both
+ # model_inheritance.Copy and model_inheritance_same_model_name.Copy
+ # models.
+ self.title = Title.objects.create(title='Lorem Ipsum')
+
+ def test_inheritance_related_name(self):
+ self.assertEqual(
+ self.title.attached_model_inheritance_copy_set.create(
+ content='Save $ on V1agr@',
+ url='http://v1agra.com/',
+ title='V1agra is spam',
+ ), Copy.objects.get(
+ content='Save $ on V1agr@',
+ ))
+
+ def test_inheritance_with_same_model_name(self):
+ with self.modify_settings(
+ INSTALLED_APPS={'append': ['model_inheritance.same_model_name']}):
+ call_command('migrate', verbosity=0)
+ from .same_model_name.models import Copy
+ self.assertEqual(
+ self.title.attached_same_model_name_copy_set.create(
+ content='The Web framework for perfectionists with deadlines.',
+ url='http://www.djangoproject.com/',
+ title='Django Rocks'
+ ), Copy.objects.get(
+ content='The Web framework for perfectionists with deadlines.',
+ ))
+
+ def test_related_name_attribute_exists(self):
+ # The Post model doesn't have an attribute called 'attached_%(app_label)s_%(class)s_set'.
+ self.assertFalse(hasattr(self.title, 'attached_%(app_label)s_%(class)s_set'))
diff --git a/tests/model_inheritance_same_model_name/tests.py b/tests/model_inheritance_same_model_name/tests.py
deleted file mode 100644
index fe1fb0cdd2..0000000000
--- a/tests/model_inheritance_same_model_name/tests.py
+++ /dev/null
@@ -1,36 +0,0 @@
-from __future__ import unicode_literals
-
-from django.test import TestCase
-
-from model_inheritance.models import Title
-
-
-class InheritanceSameModelNameTests(TestCase):
-
- def setUp(self):
- # The Title model has distinct accessors for both
- # model_inheritance.Copy and model_inheritance_same_model_name.Copy
- # models.
- self.title = Title.objects.create(title='Lorem Ipsum')
-
- def test_inheritance_related_name(self):
- from model_inheritance.models import Copy
- self.assertEqual(
- self.title.attached_model_inheritance_copy_set.create(
- content='Save $ on V1agr@',
- url='http://v1agra.com/',
- title='V1agra is spam',
- ), Copy.objects.get(content='Save $ on V1agr@'))
-
- def test_inheritance_with_same_model_name(self):
- from model_inheritance_same_model_name.models import Copy
- self.assertEqual(
- self.title.attached_model_inheritance_same_model_name_copy_set.create(
- content='The Web framework for perfectionists with deadlines.',
- url='http://www.djangoproject.com/',
- title='Django Rocks'
- ), Copy.objects.get(content='The Web framework for perfectionists with deadlines.'))
-
- def test_related_name_attribute_exists(self):
- # The Post model doesn't have an attribute called 'attached_%(app_label)s_%(class)s_set'.
- self.assertEqual(hasattr(self.title, 'attached_%(app_label)s_%(class)s_set'), False)