summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMads Jensen <mje@inducks.org>2017-10-10 13:00:56 +0200
committerTim Graham <timograham@gmail.com>2017-10-20 10:15:11 -0400
commit5114669f7296bfb58acb51fbed58d8a7617f05a3 (patch)
tree68f75965352f2b2d88daa4f1a29428cdedf2caa0
parentf7036b3e26745b944cd888fe7ed3f677b2caec8f (diff)
Refs #24031 -- Added test for Case and When constructor arguments.
-rw-r--r--tests/expressions_case/tests.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/tests/expressions_case/tests.py b/tests/expressions_case/tests.py
index 16c8a3d546..69e299bde9 100644
--- a/tests/expressions_case/tests.py
+++ b/tests/expressions_case/tests.py
@@ -8,7 +8,7 @@ from django.core.exceptions import FieldError
from django.db import models
from django.db.models import F, Max, Min, Q, Sum, Value
from django.db.models.expressions import Case, When
-from django.test import TestCase
+from django.test import SimpleTestCase, TestCase
from .models import CaseTestModel, Client, FKCaseTestModel, O2OCaseTestModel
@@ -1287,3 +1287,17 @@ class CaseDocumentationExamples(TestCase):
[('Jack Black', 'P')],
transform=attrgetter('name', 'account_type')
)
+
+
+class CaseWhenTests(SimpleTestCase):
+ def test_only_when_arguments(self):
+ msg = 'Positional arguments must all be When objects.'
+ with self.assertRaisesMessage(TypeError, msg):
+ Case(When(Q(pk__in=[])), object())
+
+ def test_invalid_when_constructor_args(self):
+ msg = '__init__() takes either a Q object or lookups as keyword arguments'
+ with self.assertRaisesMessage(TypeError, msg):
+ When(condition=object())
+ with self.assertRaisesMessage(TypeError, msg):
+ When()