summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2016-02-22 16:05:47 -0500
committerSimon Charette <charette.s@gmail.com>2016-02-29 22:13:54 -0500
commit48cf7516409c668bf11e24e6b7cd8eaea13ae3b8 (patch)
tree5b4c48da5e86dcf2cf6412fde0ce67dff01147fa /tests
parente9234569f69e0afcc97b3b1ff5293bad1678a076 (diff)
[1.9.x] Fixed #26186 -- Documented how app relative relationships of abstract models behave.
This partially reverts commit bc7d201bdbaeac14a49f51a9ef292d6312b4c45e. Thanks Tim for the review. Refs #25858. Backport of 0223e213dd690b6b6e0669f836a20efb10998c83 from master
Diffstat (limited to 'tests')
-rw-r--r--tests/model_fields/tests.py66
1 files changed, 38 insertions, 28 deletions
diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py
index 5aafdb2844..cc6639b032 100644
--- a/tests/model_fields/tests.py
+++ b/tests/model_fields/tests.py
@@ -251,24 +251,29 @@ class ForeignKeyTests(test.TestCase):
def test_abstract_model_app_relative_foreign_key(self):
test_apps = Apps(['model_fields', 'model_fields.tests'])
- class Refered(models.Model):
- class Meta:
- apps = test_apps
- app_label = 'model_fields'
-
class AbstractReferent(models.Model):
reference = models.ForeignKey('Refered', on_delete=models.CASCADE)
class Meta:
+ apps = test_apps
app_label = 'model_fields'
abstract = True
- class ConcreteReferent(AbstractReferent):
- class Meta:
- apps = test_apps
- app_label = 'tests'
+ def assert_app_model_resolved(label):
+ class Refered(models.Model):
+ class Meta:
+ apps = test_apps
+ app_label = label
+
+ class ConcreteReferent(AbstractReferent):
+ class Meta:
+ apps = test_apps
+ app_label = label
+
+ self.assertEqual(ConcreteReferent._meta.get_field('reference').related_model, Refered)
- self.assertEqual(ConcreteReferent._meta.get_field('reference').related_model, Refered)
+ assert_app_model_resolved('model_fields')
+ assert_app_model_resolved('tests')
class ManyToManyFieldTests(test.SimpleTestCase):
@@ -295,33 +300,38 @@ class ManyToManyFieldTests(test.SimpleTestCase):
def test_abstract_model_app_relative_foreign_key(self):
test_apps = Apps(['model_fields', 'model_fields.tests'])
- class Refered(models.Model):
+ class AbstractReferent(models.Model):
+ reference = models.ManyToManyField('Refered', through='Through')
+
class Meta:
apps = test_apps
app_label = 'model_fields'
+ abstract = True
- class Through(models.Model):
- refered = models.ForeignKey('Refered', on_delete=models.CASCADE)
- referent = models.ForeignKey('tests.ConcreteReferent', on_delete=models.CASCADE)
+ def assert_app_model_resolved(label):
+ class Refered(models.Model):
+ class Meta:
+ apps = test_apps
+ app_label = label
- class Meta:
- apps = test_apps
- app_label = 'model_fields'
+ class Through(models.Model):
+ refered = models.ForeignKey('Refered', on_delete=models.CASCADE)
+ referent = models.ForeignKey('ConcreteReferent', on_delete=models.CASCADE)
- class AbstractReferent(models.Model):
- reference = models.ManyToManyField('Refered', through='Through')
+ class Meta:
+ apps = test_apps
+ app_label = label
- class Meta:
- app_label = 'model_fields'
- abstract = True
+ class ConcreteReferent(AbstractReferent):
+ class Meta:
+ apps = test_apps
+ app_label = label
- class ConcreteReferent(AbstractReferent):
- class Meta:
- apps = test_apps
- app_label = 'tests'
+ self.assertEqual(ConcreteReferent._meta.get_field('reference').related_model, Refered)
+ self.assertEqual(ConcreteReferent.reference.through, Through)
- self.assertEqual(ConcreteReferent._meta.get_field('reference').related_model, Refered)
- self.assertEqual(ConcreteReferent.reference.through, Through)
+ assert_app_model_resolved('model_fields')
+ assert_app_model_resolved('tests')
class TextFieldTests(test.TestCase):