summaryrefslogtreecommitdiff
path: root/tests/proxy_models
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2015-10-01 14:57:58 -0400
committerSimon Charette <charette.s@gmail.com>2015-10-12 12:14:26 -0400
commit6c9f37ea9eafb0ca1b02eb71ae8d375672043824 (patch)
treeac1a374541c6a345fe73a0d5a86ff2881b7bc33a /tests/proxy_models
parentc8f091f5bcce317629c4af86c88a2864ab7d380b (diff)
downloaddjango-6c9f37ea9eafb0ca1b02eb71ae8d375672043824.tar.gz
Fixed #18012 -- Propagated reverse foreign keys from proxy to concrete models.
Thanks to Anssi for the review.
Diffstat (limited to 'tests/proxy_models')
-rw-r--r--tests/proxy_models/models.py2
-rw-r--r--tests/proxy_models/tests.py17
2 files changed, 12 insertions, 7 deletions
diff --git a/tests/proxy_models/models.py b/tests/proxy_models/models.py
index 145f70dac6..6c5f98ec14 100644
--- a/tests/proxy_models/models.py
+++ b/tests/proxy_models/models.py
@@ -158,7 +158,7 @@ class ProxyTrackerUser(TrackerUser):
@python_2_unicode_compatible
class Issue(models.Model):
summary = models.CharField(max_length=255)
- assignee = models.ForeignKey(ProxyTrackerUser, models.CASCADE)
+ assignee = models.ForeignKey(ProxyTrackerUser, models.CASCADE, related_name='issues')
def __str__(self):
return ':'.join((self.__class__.__name__, self.summary,))
diff --git a/tests/proxy_models/tests.py b/tests/proxy_models/tests.py
index 98244327a3..dd15976751 100644
--- a/tests/proxy_models/tests.py
+++ b/tests/proxy_models/tests.py
@@ -6,7 +6,7 @@ from django.apps import apps
from django.contrib import admin
from django.contrib.auth.models import User as AuthUser
from django.contrib.contenttypes.models import ContentType
-from django.core import checks, exceptions, management
+from django.core import checks, management
from django.core.urlresolvers import reverse
from django.db import DEFAULT_DB_ALIAS, models
from django.db.models import signals
@@ -332,14 +332,19 @@ class ProxyModelTests(TestCase):
self.assertEqual(resp.name, 'New South Wales')
def test_filter_proxy_relation_reverse(self):
- tu = TrackerUser.objects.create(
- name='Contributor', status='contrib')
- with self.assertRaises(exceptions.FieldError):
- TrackerUser.objects.filter(issue=None),
+ tu = TrackerUser.objects.create(name='Contributor', status='contrib')
+ ptu = ProxyTrackerUser.objects.get()
+ issue = Issue.objects.create(assignee=tu)
+ self.assertEqual(tu.issues.get(), issue)
+ self.assertEqual(ptu.issues.get(), issue)
self.assertQuerysetEqual(
- ProxyTrackerUser.objects.filter(issue=None),
+ TrackerUser.objects.filter(issues=issue),
[tu], lambda x: x
)
+ self.assertQuerysetEqual(
+ ProxyTrackerUser.objects.filter(issues=issue),
+ [ptu], lambda x: x
+ )
def test_proxy_bug(self):
contributor = ProxyTrackerUser.objects.create(name='Contributor',