summaryrefslogtreecommitdiff
path: root/tests/model_fields
diff options
context:
space:
mode:
Diffstat (limited to 'tests/model_fields')
-rw-r--r--tests/model_fields/test_jsonfield.py24
1 files changed, 22 insertions, 2 deletions
diff --git a/tests/model_fields/test_jsonfield.py b/tests/model_fields/test_jsonfield.py
index 7ab5d17086..d0561e14d2 100644
--- a/tests/model_fields/test_jsonfield.py
+++ b/tests/model_fields/test_jsonfield.py
@@ -1036,6 +1036,7 @@ class TestQuerying(TestCase):
[self.objs[7]],
),
("value__foo__in", [F("value__bax__foo")], [self.objs[7]]),
+ ("value__foo__in", [F("value__bax__foo"), {}], [self.objs[7]]),
(
"value__foo__in",
[KeyTransform("foo", KeyTransform("bax", "value")), "baz"],
@@ -1045,6 +1046,16 @@ class TestQuerying(TestCase):
("value__foo__in", ["bar", "baz"], [self.objs[7]]),
("value__bar__in", [["foo", "bar"]], [self.objs[7]]),
("value__bar__in", [Value(["foo", "bar"], JSONField())], [self.objs[7]]),
+ (
+ "value__bar__in",
+ [["foo", "bar"], Value({}, JSONField())],
+ [self.objs[7]],
+ ),
+ (
+ "value__bar__in",
+ [Value(["foo", "bar"], JSONField()), {"a": "b"}],
+ [self.objs[7]],
+ ),
("value__bar__in", [["foo", "bar"], ["a"]], [self.objs[7]]),
("value__bax__in", [{"foo": "bar"}, {"a": "b"}], [self.objs[7]]),
("value__h__in", [True, "foo"], [self.objs[4]]),
@@ -1313,9 +1324,18 @@ class JSONNullTests(TestCase):
def test_filter_in(self):
obj = NullableJSONModel.objects.create(value=JSONNull())
+ obj2 = NullableJSONModel.objects.create(value=[1])
self.assertSequenceEqual(
- NullableJSONModel.objects.filter(value__in=[JSONNull()]),
- [obj],
+ NullableJSONModel.objects.filter(value__in=[JSONNull(), [1], "foo"]),
+ [obj, obj2],
+ )
+
+ def test_key_in(self):
+ obj1 = NullableJSONModel.objects.create(value={"key": None})
+ obj2 = NullableJSONModel.objects.create(value={"key": [1]})
+ self.assertSequenceEqual(
+ NullableJSONModel.objects.filter(value__key__in=[JSONNull(), [1], 0]),
+ [obj1, obj2],
)
def test_bulk_update(self):