summaryrefslogtreecommitdiff
path: root/tests/modeltests/get_object_or_404
diff options
context:
space:
mode:
Diffstat (limited to 'tests/modeltests/get_object_or_404')
-rw-r--r--tests/modeltests/get_object_or_404/tests.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/modeltests/get_object_or_404/tests.py b/tests/modeltests/get_object_or_404/tests.py
index 280720fd15..3b234c6cd3 100644
--- a/tests/modeltests/get_object_or_404/tests.py
+++ b/tests/modeltests/get_object_or_404/tests.py
@@ -80,3 +80,28 @@ class GetObjectOr404Tests(TestCase):
get_list_or_404(Article.objects.all(), title__icontains="Run"),
[article]
)
+
+ def test_bad_class(self):
+ # Given an argument klass that is not a Model, Manager, or Queryset
+ # raises a helpful ValueError message
+ self.assertRaisesMessage(ValueError,
+ "Object is of type 'str', but must be a Django Model, Manager, "
+ "or QuerySet",
+ get_object_or_404, "Article", title__icontains="Run"
+ )
+
+ class CustomClass(object):
+ pass
+
+ self.assertRaisesMessage(ValueError,
+ "Object is of type 'CustomClass', but must be a Django Model, "
+ "Manager, or QuerySet",
+ get_object_or_404, CustomClass, title__icontains="Run"
+ )
+
+ # Works for lists too
+ self.assertRaisesMessage(ValueError,
+ "Object is of type 'list', but must be a Django Model, Manager, "
+ "or QuerySet",
+ get_list_or_404, [Article], title__icontains="Run"
+ )