summaryrefslogtreecommitdiff
path: root/tests/foreign_object
diff options
context:
space:
mode:
Diffstat (limited to 'tests/foreign_object')
-rw-r--r--tests/foreign_object/tests.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/foreign_object/tests.py b/tests/foreign_object/tests.py
index cd81cc68a2..77582162a8 100644
--- a/tests/foreign_object/tests.py
+++ b/tests/foreign_object/tests.py
@@ -132,7 +132,6 @@ class MultiColumnFKTests(TestCase):
],
attrgetter('person_id')
)
-
self.assertQuerysetEqual(
Membership.objects.filter(person__in=Person.objects.filter(name='Jim')), [
self.jim.id,
@@ -140,6 +139,24 @@ class MultiColumnFKTests(TestCase):
attrgetter('person_id')
)
+ def test_double_nested_query(self):
+ m1 = Membership.objects.create(membership_country_id=self.usa.id, person_id=self.bob.id,
+ group_id=self.cia.id)
+ m2 = Membership.objects.create(membership_country_id=self.usa.id, person_id=self.jim.id,
+ group_id=self.cia.id)
+ Friendship.objects.create(from_friend_country_id=self.usa.id, from_friend_id=self.bob.id,
+ to_friend_country_id=self.usa.id, to_friend_id=self.jim.id)
+ self.assertQuerysetEqual(Membership.objects.filter(
+ person__in=Person.objects.filter(
+ from_friend__in=Friendship.objects.filter(
+ to_friend__in=Person.objects.all()))),
+ [m1], lambda x: x)
+ self.assertQuerysetEqual(Membership.objects.exclude(
+ person__in=Person.objects.filter(
+ from_friend__in=Friendship.objects.filter(
+ to_friend__in=Person.objects.all()))),
+ [m2], lambda x: x)
+
def test_select_related_foreignkey_forward_works(self):
Membership.objects.create(membership_country=self.usa, person=self.bob, group=self.cia)
Membership.objects.create(membership_country=self.usa, person=self.jim, group=self.democrat)