summaryrefslogtreecommitdiff
path: root/tests/prefetch_related
diff options
context:
space:
mode:
authorMads Jensen <mje@inducks.org>2017-05-28 21:37:21 +0200
committerTim Graham <timograham@gmail.com>2017-07-29 19:07:23 -0400
commita51c4de1945be2225f20fad794cfb52d8f1f9236 (patch)
tree36386b70a27cf027a8a491de319c3e59e0d3d0cd /tests/prefetch_related
parent38988f289f7f5708f5ea85de2d5dfe0d86b23106 (diff)
downloaddjango-a51c4de1945be2225f20fad794cfb52d8f1f9236.tar.gz
Used assertRaisesMessage() to test Django's error messages.
Diffstat (limited to 'tests/prefetch_related')
-rw-r--r--tests/prefetch_related/tests.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/tests/prefetch_related/tests.py b/tests/prefetch_related/tests.py
index 7be7cbbac4..85de08b184 100644
--- a/tests/prefetch_related/tests.py
+++ b/tests/prefetch_related/tests.py
@@ -199,14 +199,22 @@ class PrefetchRelatedTests(TestCase):
def test_attribute_error(self):
qs = Reader.objects.all().prefetch_related('books_read__xyz')
- with self.assertRaises(AttributeError) as cm:
+ msg = (
+ "Cannot find 'xyz' on Book object, 'books_read__xyz' "
+ "is an invalid parameter to prefetch_related()"
+ )
+ with self.assertRaisesMessage(AttributeError, msg) as cm:
list(qs)
self.assertIn('prefetch_related', str(cm.exception))
def test_invalid_final_lookup(self):
qs = Book.objects.prefetch_related('authors__name')
- with self.assertRaises(ValueError) as cm:
+ msg = (
+ "'authors__name' does not resolve to an item that supports "
+ "prefetching - this is an invalid parameter to prefetch_related()."
+ )
+ with self.assertRaisesMessage(ValueError, msg) as cm:
list(qs)
self.assertIn('prefetch_related', str(cm.exception))
@@ -337,14 +345,22 @@ class CustomPrefetchTests(TestCase):
def test_ambiguous(self):
# Ambiguous: Lookup was already seen with a different queryset.
- with self.assertRaises(ValueError):
+ msg = (
+ "'houses' lookup was already seen with a different queryset. You "
+ "may need to adjust the ordering of your lookups."
+ )
+ with self.assertRaisesMessage(ValueError, msg):
self.traverse_qs(
Person.objects.prefetch_related('houses__rooms', Prefetch('houses', queryset=House.objects.all())),
[['houses', 'rooms']]
)
# Ambiguous: Lookup houses_lst doesn't yet exist when performing houses_lst__rooms.
- with self.assertRaises(AttributeError):
+ msg = (
+ "Cannot find 'houses_lst' on Person object, 'houses_lst__rooms' is "
+ "an invalid parameter to prefetch_related()"
+ )
+ with self.assertRaisesMessage(AttributeError, msg):
self.traverse_qs(
Person.objects.prefetch_related(
'houses_lst__rooms',