mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Fixed #24752 -- query crash when reusing Case expressions
Case expressions weren't copied deep enough (self.cases list was reused resulting in an error).
This commit is contained in:
parent
9096e2b5f7
commit
7b05d2fdae
3 changed files with 20 additions and 0 deletions
|
@ -274,6 +274,18 @@ class CaseExpressionTests(TestCase):
|
|||
transform=attrgetter('integer', 'integer2')
|
||||
)
|
||||
|
||||
def test_case_reuse(self):
|
||||
SOME_CASE = Case(
|
||||
When(pk=0, then=Value('0')),
|
||||
default=Value('1'),
|
||||
output_field=models.CharField(),
|
||||
)
|
||||
self.assertQuerysetEqual(
|
||||
CaseTestModel.objects.annotate(somecase=SOME_CASE).order_by('pk'),
|
||||
CaseTestModel.objects.annotate(somecase=SOME_CASE).order_by('pk').values_list('pk', 'somecase'),
|
||||
lambda x: (x.pk, x.somecase)
|
||||
)
|
||||
|
||||
def test_aggregate(self):
|
||||
self.assertEqual(
|
||||
CaseTestModel.objects.aggregate(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue