summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorvaltron <valtron2000@gmail.com>2014-04-11 19:27:34 -0600
committerLoic Bistuer <loic.bistuer@gmail.com>2014-04-13 01:06:03 +0700
commit1252b77824639fba398cf70586bdd75c42f86fdf (patch)
tree31e7642799ccfc2c5082b9fa22242d0fa38a95f3 /tests
parenta3570798929337baeba237c7e7eec35d9f2c18c4 (diff)
[1.6.x] Fixed #21760 -- prefetch_related used an inefficient query for reverse FK.
Regression introduced by commit 9777442. Refs #21410. Conflicts: tests/prefetch_related/tests.py Backport of d3b71b976d from master
Diffstat (limited to 'tests')
-rw-r--r--tests/prefetch_related/tests.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/prefetch_related/tests.py b/tests/prefetch_related/tests.py
index 384457aba4..90a27f818c 100644
--- a/tests/prefetch_related/tests.py
+++ b/tests/prefetch_related/tests.py
@@ -2,9 +2,11 @@ from __future__ import absolute_import, unicode_literals
from django.contrib.contenttypes.models import ContentType
from django.db import connection
+from django.db.models.query import get_prefetcher
from django.test import TestCase
from django.test.utils import override_settings
from django.utils import six
+from django.utils.encoding import force_text
from .models import (Author, Book, Reader, Qualification, Teacher, Department,
TaggedItem, Bookmark, AuthorAddress, FavoriteAuthors, AuthorWithAge,
@@ -677,3 +679,18 @@ class Ticket21410Tests(TestCase):
def test_bug(self):
list(Author2.objects.prefetch_related('first_book', 'favorite_books'))
+
+
+class Ticket21760Tests(TestCase):
+
+ def setUp(self):
+ self.rooms = []
+ for _ in range(3):
+ house = House.objects.create()
+ for _ in range(3):
+ self.rooms.append(Room.objects.create(house = house))
+
+ def test_bug(self):
+ prefetcher = get_prefetcher(self.rooms[0], 'house')[0]
+ queryset = prefetcher.get_prefetch_queryset(list(Room.objects.all()))[0]
+ self.assertNotIn(' JOIN ', force_text(queryset.query))