summaryrefslogtreecommitdiff
path: root/tests/select_related_onetoone
diff options
context:
space:
mode:
authorNiclas Olofsson <n@niclasolofsson.se>2014-12-04 21:47:48 +0100
committerTim Graham <timograham@gmail.com>2014-12-24 14:54:30 -0500
commit3daa9d60be6672841ceed5bb812b6fb25950dc16 (patch)
tree1771ecd7ab15fd5795bb605c9d7e710ed0b86935 /tests/select_related_onetoone
parentb27db97b236569d059fa824c3078e06adf8b4fae (diff)
downloaddjango-3daa9d60be6672841ceed5bb812b6fb25950dc16.tar.gz
Fixed #10414 -- Made select_related() fail on invalid field names.
Diffstat (limited to 'tests/select_related_onetoone')
-rw-r--r--tests/select_related_onetoone/tests.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/select_related_onetoone/tests.py b/tests/select_related_onetoone/tests.py
index 92896b48a2..a13ac7809a 100644
--- a/tests/select_related_onetoone/tests.py
+++ b/tests/select_related_onetoone/tests.py
@@ -2,6 +2,7 @@ from __future__ import unicode_literals
import unittest
+from django.core.exceptions import FieldError
from django.test import TestCase
from .models import (User, UserProfile, UserStat, UserStatResult, StatDetails,
@@ -208,3 +209,21 @@ class ReverseSelectRelatedTestCase(TestCase):
self.assertEqual(p.child1.name1, 'n1')
with self.assertNumQueries(1):
self.assertEqual(p.child1.child4.name1, 'n1')
+
+
+class ReverseSelectRelatedValidationTests(TestCase):
+ """
+ Rverse related fields should be listed in the validation message when an
+ invalid field is given in select_related().
+ """
+ non_relational_error = "Non-relational field given in select_related: '%s'. Choices are: %s"
+ invalid_error = "Invalid field name(s) given in select_related: '%s'. Choices are: %s"
+
+ def test_reverse_related_validation(self):
+ fields = 'userprofile, userstat'
+
+ with self.assertRaisesMessage(FieldError, self.invalid_error % ('foobar', fields)):
+ list(User.objects.select_related('foobar'))
+
+ with self.assertRaisesMessage(FieldError, self.non_relational_error % ('username', fields)):
+ list(User.objects.select_related('username'))