diff options
author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-08-18 21:02:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-18 21:02:29 +0200 |
commit | e9fd2b572410b1236da0d3d0933014138d89f44e (patch) | |
tree | 80eed25210c6bdddbc0ded52364172cf752c830a /tests/model_fields | |
parent | bd3602310073edde7220a61ca85dbf128e8ee6ac (diff) | |
download | django-e9fd2b572410b1236da0d3d0933014138d89f44e.tar.gz |
Refs #26511 -- Fixed json.KeyTextTransform() on MySQL/MariaDB.
Diffstat (limited to 'tests/model_fields')
-rw-r--r-- | tests/model_fields/test_jsonfield.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/model_fields/test_jsonfield.py b/tests/model_fields/test_jsonfield.py index 25dfef7a24..d6b9f031b1 100644 --- a/tests/model_fields/test_jsonfield.py +++ b/tests/model_fields/test_jsonfield.py @@ -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( |