diff options
| author | Simon Charette <charette.s@gmail.com> | 2015-10-01 14:57:58 -0400 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2015-10-12 12:14:26 -0400 |
| commit | 6c9f37ea9eafb0ca1b02eb71ae8d375672043824 (patch) | |
| tree | ac1a374541c6a345fe73a0d5a86ff2881b7bc33a /tests | |
| parent | c8f091f5bcce317629c4af86c88a2864ab7d380b (diff) | |
| download | django-6c9f37ea9eafb0ca1b02eb71ae8d375672043824.tar.gz | |
Fixed #18012 -- Propagated reverse foreign keys from proxy to concrete models.
Thanks to Anssi for the review.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/model_meta/models.py | 2 | ||||
| -rw-r--r-- | tests/model_meta/results.py | 6 | ||||
| -rw-r--r-- | tests/proxy_models/models.py | 2 | ||||
| -rw-r--r-- | tests/proxy_models/tests.py | 17 |
4 files changed, 19 insertions, 8 deletions
diff --git a/tests/model_meta/models.py b/tests/model_meta/models.py index 5189543880..a9c1f8f98d 100644 --- a/tests/model_meta/models.py +++ b/tests/model_meta/models.py @@ -113,7 +113,7 @@ class Relating(models.Model): # ForeignKey to ProxyPerson proxyperson = models.ForeignKey(ProxyPerson, models.CASCADE, related_name='relating_proxyperson') - proxyperson_hidden = models.ForeignKey(ProxyPerson, models.CASCADE, related_name='+') + proxyperson_hidden = models.ForeignKey(ProxyPerson, models.CASCADE, related_name='relating_proxyperson_hidden+') # ManyToManyField to BasePerson basepeople = models.ManyToManyField(BasePerson, related_name='relating_basepeople') diff --git a/tests/model_meta/results.py b/tests/model_meta/results.py index a4d9010da8..5975f06465 100644 --- a/tests/model_meta/results.py +++ b/tests/model_meta/results.py @@ -331,6 +331,8 @@ TEST_RESULTS = { ('friends_inherited_rel_+', None), ('relating_people', None), ('relating_person', None), + ('relating_proxyperson', None), + ('relating_proxyperson_hidden+', None), ), BasePerson: ( ('+', None), @@ -413,6 +415,8 @@ TEST_RESULTS = { ('relating_baseperson', BasePerson), ('relating_people', None), ('relating_person', None), + ('relating_proxyperson', None), + ('relating_proxyperson_hidden+', None), ), BasePerson: ( ('+', None), @@ -465,6 +469,7 @@ TEST_RESULTS = { ('followers_concrete', None), ('relating_person', None), ('relating_people', None), + ('relating_proxyperson', None), ), BasePerson: ( ('followers_abstract', None), @@ -494,6 +499,7 @@ TEST_RESULTS = { ('followers_concrete', None), ('relating_person', None), ('relating_people', None), + ('relating_proxyperson', None), ), BasePerson: ( ('followers_abstract', None), 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', |
