summaryrefslogtreecommitdiff
path: root/tests/select_related
diff options
context:
space:
mode:
authorAnssi Kääriäinen <anssi@holvi.com>2017-09-21 14:21:12 -0400
committerTim Graham <timograham@gmail.com>2017-09-21 14:25:42 -0400
commit771e06af2aacff5d544c3004fa6548749ed81a2a (patch)
treef8824aa5ac648cec4acb60d2525fdf2d319579ea /tests/select_related
parentd612026c37f85769322a44c0284ca2d2be6b6e5b (diff)
downloaddjango-771e06af2aacff5d544c3004fa6548749ed81a2a.tar.gz
Added a test for QuerySet.select_related() reverse caching.
Diffstat (limited to 'tests/select_related')
-rw-r--r--tests/select_related/tests.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/select_related/tests.py b/tests/select_related/tests.py
index c19984e267..0af10f207f 100644
--- a/tests/select_related/tests.py
+++ b/tests/select_related/tests.py
@@ -150,6 +150,15 @@ class SelectRelatedTests(TestCase):
self.assertEqual(obj.parent_1, parent_1)
self.assertEqual(obj.parent_2, parent_2)
+ def test_reverse_relation_caching(self):
+ species = Species.objects.select_related('genus').filter(name='melanogaster').first()
+ with self.assertNumQueries(0):
+ self.assertEqual(species.genus.name, 'Drosophila')
+ # The species_set reverse relation isn't cached.
+ self.assertEqual(species.genus._state.fields_cache, {})
+ with self.assertNumQueries(1):
+ self.assertEqual(species.genus.species_set.first().name, 'melanogaster')
+
def test_select_related_after_values(self):
"""
Running select_related() after calling values() raises a TypeError