aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_relations_pk.py
diff options
context:
space:
mode:
authorTom Christie2014-12-10 21:09:45 +0000
committerTom Christie2014-12-10 21:09:45 +0000
commitca7b1f6d5189398be8a0d24b1e01577281b1b187 (patch)
tree43892cdb5c9079ee5e2a464cd3e4eae98e755c11 /tests/test_relations_pk.py
parent720a37d3dedc501968bebaca3a339c72392b9c81 (diff)
downloaddjango-rest-framework-ca7b1f6d5189398be8a0d24b1e01577281b1b187.tar.bz2
Optimizations play nicely with select_related, prefetch_related
Diffstat (limited to 'tests/test_relations_pk.py')
-rw-r--r--tests/test_relations_pk.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/test_relations_pk.py b/tests/test_relations_pk.py
index e95a877e..f872a8dc 100644
--- a/tests/test_relations_pk.py
+++ b/tests/test_relations_pk.py
@@ -71,6 +71,12 @@ class PKManyToManyTests(TestCase):
with self.assertNumQueries(4):
self.assertEqual(serializer.data, expected)
+ def test_many_to_many_retrieve_prefetch_related(self):
+ queryset = ManyToManySource.objects.all().prefetch_related('targets')
+ serializer = ManyToManySourceSerializer(queryset, many=True)
+ with self.assertNumQueries(2):
+ serializer.data
+
def test_reverse_many_to_many_retrieve(self):
queryset = ManyToManyTarget.objects.all()
serializer = ManyToManyTargetSerializer(queryset, many=True)
@@ -188,6 +194,12 @@ class PKForeignKeyTests(TestCase):
with self.assertNumQueries(3):
self.assertEqual(serializer.data, expected)
+ def test_reverse_foreign_key_retrieve_prefetch_related(self):
+ queryset = ForeignKeyTarget.objects.all().prefetch_related('sources')
+ serializer = ForeignKeyTargetSerializer(queryset, many=True)
+ with self.assertNumQueries(2):
+ serializer.data
+
def test_foreign_key_update(self):
data = {'id': 1, 'name': 'source-1', 'target': 2}
instance = ForeignKeySource.objects.get(pk=1)