diff options
| author | Tom Christie | 2014-12-10 21:09:45 +0000 | 
|---|---|---|
| committer | Tom Christie | 2014-12-10 21:09:45 +0000 | 
| commit | ca7b1f6d5189398be8a0d24b1e01577281b1b187 (patch) | |
| tree | 43892cdb5c9079ee5e2a464cd3e4eae98e755c11 /tests/test_relations_slug.py | |
| parent | 720a37d3dedc501968bebaca3a339c72392b9c81 (diff) | |
| download | django-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.py | 15 | 
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) | 
