summaryrefslogtreecommitdiff
path: root/tests/annotations/tests.py
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2016-11-15 01:47:20 +0600
committerTim Graham <timograham@gmail.com>2016-11-14 14:47:20 -0500
commitc7bfcd2f377ad5803e25ee547dee9cf58ee68ab2 (patch)
treef1895565f84834df093827449df994dff5b1eaab /tests/annotations/tests.py
parent967be82443b5640d61608a89897d8ce2bc44fa54 (diff)
Fixed #27481 -- Made SQLite return annotated boolean values as boolean, not integer.
Thanks Simon Charette for review.
Diffstat (limited to 'tests/annotations/tests.py')
-rw-r--r--tests/annotations/tests.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/annotations/tests.py b/tests/annotations/tests.py
index 0515ac1ca1..b90286b9da 100644
--- a/tests/annotations/tests.py
+++ b/tests/annotations/tests.py
@@ -6,7 +6,7 @@ from decimal import Decimal
from django.core.exceptions import FieldDoesNotExist, FieldError
from django.db.models import (
BooleanField, CharField, Count, DateTimeField, ExpressionWrapper, F, Func,
- IntegerField, Q, Sum, Value,
+ IntegerField, NullBooleanField, Q, Sum, Value,
)
from django.db.models.functions import Lower
from django.test import TestCase, skipUnlessDBFeature
@@ -488,3 +488,15 @@ class NonAggregateAnnotationTestCase(TestCase):
],
lambda c: (c.name, c.tagline_lower)
)
+
+ def test_boolean_value_annotation(self):
+ books = Book.objects.annotate(
+ is_book=Value(True, output_field=BooleanField()),
+ is_pony=Value(False, output_field=BooleanField()),
+ is_none=Value(None, output_field=NullBooleanField()),
+ )
+ self.assertGreater(len(books), 0)
+ for book in books:
+ self.assertIs(book.is_book, True)
+ self.assertIs(book.is_pony, False)
+ self.assertIsNone(book.is_none)