diff options
author | Mads Jensen <mje@inducks.org> | 2017-05-28 21:37:21 +0200 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2017-07-29 19:07:23 -0400 |
commit | a51c4de1945be2225f20fad794cfb52d8f1f9236 (patch) | |
tree | 36386b70a27cf027a8a491de319c3e59e0d3d0cd /tests/prefetch_related | |
parent | 38988f289f7f5708f5ea85de2d5dfe0d86b23106 (diff) | |
download | django-a51c4de1945be2225f20fad794cfb52d8f1f9236.tar.gz |
Used assertRaisesMessage() to test Django's error messages.
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', |