aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_relations_slug.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_slug.py
parent720a37d3dedc501968bebaca3a339c72392b9c81 (diff)
downloaddjango-rest-framework-ca7b1f6d5189398be8a0d24b1e01577281b1b187.tar.bz2
Optimizations play nicely with select_related, prefetch_related
Diffstat (limited to 'tests/test_relations_slug.py')
-rw-r--r--tests/test_relations_slug.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/tests/test_relations_slug.py b/tests/test_relations_slug.py
index 7bac9046..cd2cb1ed 100644
--- a/tests/test_relations_slug.py
+++ b/tests/test_relations_slug.py
@@ -54,7 +54,14 @@ class SlugForeignKeyTests(TestCase):
{'id': 2, 'name': 'source-2', 'target': 'target-1'},
{'id': 3, 'name': 'source-3', 'target': 'target-1'}
]
- self.assertEqual(serializer.data, expected)
+ with self.assertNumQueries(4):
+ self.assertEqual(serializer.data, expected)
+
+ def test_foreign_key_retrieve_select_related(self):
+ queryset = ForeignKeySource.objects.all().select_related('target')
+ serializer = ForeignKeySourceSerializer(queryset, many=True)
+ with self.assertNumQueries(1):
+ serializer.data
def test_reverse_foreign_key_retrieve(self):
queryset = ForeignKeyTarget.objects.all()
@@ -65,6 +72,12 @@ class SlugForeignKeyTests(TestCase):
]
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': 'target-2'}
instance = ForeignKeySource.objects.get(pk=1)