diff options
author | Niclas Olofsson <n@niclasolofsson.se> | 2014-12-04 21:47:48 +0100 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2014-12-24 14:54:30 -0500 |
commit | 3daa9d60be6672841ceed5bb812b6fb25950dc16 (patch) | |
tree | 1771ecd7ab15fd5795bb605c9d7e710ed0b86935 /tests/select_related_onetoone | |
parent | b27db97b236569d059fa824c3078e06adf8b4fae (diff) | |
download | django-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.py | 19 |
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')) |