diff options
Diffstat (limited to 'tests/prefetch_related')
-rw-r--r-- | tests/prefetch_related/tests.py | 24 |
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', |