diff options
Diffstat (limited to 'tests/foreign_object')
| -rw-r--r-- | tests/foreign_object/tests.py | 19 |
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) |
