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

Refs #26511 -- Fixed json.KeyTextTransform() on MySQL/MariaDB.

This commit is contained in:
Mariusz Felisiak
2022-08-18 21:02:29 +02:00
committed by GitHub
parent bd36023100
commit e9fd2b5724
2 changed files with 25 additions and 1 deletions

View File

@@ -370,6 +370,7 @@ class TestQuerying(TestCase):
).order_by("key"),
):
self.assertSequenceEqual(qs, [self.objs[4]])
none_val = "" if connection.features.interprets_empty_strings_as_nulls else None
qs = NullableJSONModel.objects.filter(value__isnull=False)
self.assertQuerysetEqual(
qs.filter(value__isnull=False)
@@ -381,7 +382,7 @@ class TestQuerying(TestCase):
.values("key")
.annotate(count=Count("key"))
.order_by("count"),
[(None, 0), ("g", 1)],
[(none_val, 0), ("g", 1)],
operator.itemgetter("key", "count"),
)
@@ -494,6 +495,17 @@ class TestQuerying(TestCase):
[self.objs[4]],
)
def test_key_text_transform_char_lookup(self):
qs = NullableJSONModel.objects.annotate(
char_value=KeyTextTransform("foo", "value"),
).filter(char_value__startswith="bar")
self.assertSequenceEqual(qs, [self.objs[7]])
qs = NullableJSONModel.objects.annotate(
char_value=KeyTextTransform(1, KeyTextTransform("bar", "value")),
).filter(char_value__startswith="bar")
self.assertSequenceEqual(qs, [self.objs[7]])
def test_expression_wrapper_key_transform(self):
self.assertCountEqual(
NullableJSONModel.objects.annotate(