summaryrefslogtreecommitdiff
path: root/tests/select_related
diff options
context:
space:
mode:
authorY3K <dboy.y3k@gmail.com>2015-08-30 23:18:03 -0500
committerJosh Smeaton <josh.smeaton@gmail.com>2015-08-31 15:13:59 +1000
commitcbcf78fa949091e037861d66d942d7fb31d57bf6 (patch)
treea2c9d1a7563511fbfbab9111f1d2ddb22ea2b81e /tests/select_related
parent7a98442f9645102601c5a18b2ff93b7433e3a01d (diff)
downloaddjango-cbcf78fa949091e037861d66d942d7fb31d57bf6.tar.gz
Fixed #25252 -- Added friendly error message on incorrect .select_related() use
Using select_related() after .values() or .values_list() is not possible because .values() or .values_list() already got the values they need.
Diffstat (limited to 'tests/select_related')
-rw-r--r--tests/select_related/tests.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/select_related/tests.py b/tests/select_related/tests.py
index 9a027ac18c..53353a7715 100644
--- a/tests/select_related/tests.py
+++ b/tests/select_related/tests.py
@@ -163,6 +163,26 @@ class SelectRelatedTests(TestCase):
self.assertEqual(obj.parent_1, parent_1)
self.assertEqual(obj.parent_2, parent_2)
+ def test_select_related_after_values(self):
+ """
+ Running select_related() after calling values() raises a TypeError
+ """
+
+ message = "Cannot call select_related() after .values() or .values_list()"
+
+ with self.assertRaisesMessage(TypeError, message):
+ list(Species.objects.values('name').select_related('genus'))
+
+ def test_select_related_after_values_list(self):
+ """
+ Running select_related() after calling values_list() raises a TypeError
+ """
+
+ message = "Cannot call select_related() after .values() or .values_list()"
+
+ with self.assertRaisesMessage(TypeError, message):
+ list(Species.objects.values_list('name').select_related('genus'))
+
class SelectRelatedValidationTests(SimpleTestCase):
"""