diff options
| author | Simon Charette <charette.s@gmail.com> | 2018-11-01 01:10:29 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-11-08 19:51:15 -0500 |
| commit | 75dfa92a05c7161edd0ba7bc9ceab9b54d3383db (patch) | |
| tree | 024268afa5aedd08a72d40dcd15ef923c46f2afb /tests/foreign_object | |
| parent | 413583e2e27af89e3ffaa4f8e34ee018fb77173c (diff) | |
Fixed #29908 -- Fixed setting of foreign key after related set access if ForeignKey uses to_field.
Adjusted known related objects handling of target fields which relies on
from and to_fields and has the side effect of fixing a bug bug causing
N+1 queries when using reverse foreign objects.
Thanks Carsten Fuchs for the report.
Diffstat (limited to 'tests/foreign_object')
| -rw-r--r-- | tests/foreign_object/tests.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/tests/foreign_object/tests.py b/tests/foreign_object/tests.py index 59d4357802..6af6def6d7 100644 --- a/tests/foreign_object/tests.py +++ b/tests/foreign_object/tests.py @@ -69,12 +69,10 @@ class MultiColumnFKTests(TestCase): membership_country_id=self.soviet_union.id, person_id=self.bob.id, group_id=self.republican.id) - self.assertQuerysetEqual( - self.bob.membership_set.all(), [ - self.cia.id - ], - attrgetter("group_id") - ) + with self.assertNumQueries(1): + membership = self.bob.membership_set.get() + self.assertEqual(membership.group_id, self.cia.id) + self.assertIs(membership.person, self.bob) def test_query_filters_correctly(self): @@ -198,8 +196,11 @@ class MultiColumnFKTests(TestCase): list(p.membership_set.all()) for p in Person.objects.prefetch_related('membership_set').order_by('pk')] - normal_membership_sets = [list(p.membership_set.all()) - for p in Person.objects.order_by('pk')] + with self.assertNumQueries(7): + normal_membership_sets = [ + list(p.membership_set.all()) + for p in Person.objects.order_by('pk') + ] self.assertEqual(membership_sets, normal_membership_sets) def test_m2m_through_forward_returns_valid_members(self): |
