1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #24148 -- Documented a bug with case expressions in SQLite < 3.7.0

This commit is contained in:
Michał Modzelewski
2015-01-15 22:16:25 +01:00
committed by Tim Graham
parent 51dc617b21
commit 39b58ad95a
2 changed files with 24 additions and 1 deletions

View File

@@ -7,7 +7,7 @@ import unittest
from uuid import UUID
from django.core.exceptions import FieldError
from django.db import models
from django.db import connection, models
from django.db.models import F, Q, Value, Min, Max
from django.db.models.expressions import Case, When
from django.test import TestCase
@@ -254,6 +254,12 @@ class CaseExpressionTests(TestCase):
transform=attrgetter('integer', 'test')
)
if connection.vendor == 'sqlite' and connection.Database.sqlite_version_info < (3, 7, 0):
# There is a bug in sqlite < 3.7.0, where placeholder order is lost.
# Thus, the above query returns <condition_value> + <result_value>
# for each matching case instead of <result_value> + 1 (#24148).
test_combined_expression = unittest.expectedFailure(test_combined_expression)
def test_in_subquery(self):
self.assertQuerysetEqual(
CaseTestModel.objects.filter(