summaryrefslogtreecommitdiff
path: root/tests/prefetch_related
diff options
context:
space:
mode:
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',