diff options
Diffstat (limited to 'tests/annotations')
-rw-r--r-- | tests/annotations/tests.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/annotations/tests.py b/tests/annotations/tests.py index 981e73e43e..1714076e1d 100644 --- a/tests/annotations/tests.py +++ b/tests/annotations/tests.py @@ -508,3 +508,12 @@ class NonAggregateAnnotationTestCase(TestCase): self.assertIs(book.is_book, True) self.assertIs(book.is_pony, False) self.assertIsNone(book.is_none) + + def test_arguments_must_be_expressions(self): + msg = 'QuerySet.annotate() received non-expression(s): %s.' + with self.assertRaisesMessage(TypeError, msg % BooleanField()): + Book.objects.annotate(BooleanField()) + with self.assertRaisesMessage(TypeError, msg % True): + Book.objects.annotate(is_book=True) + with self.assertRaisesMessage(TypeError, msg % ', '.join([str(BooleanField()), 'True'])): + Book.objects.annotate(BooleanField(), Value(False), is_book=True) |