MCPcopy
hub / github.com/django/django / test_key_in

Method test_key_in

tests/model_fields/test_jsonfield.py:1032–1075  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1030 )
1031
1032 def test_key_in(self):
1033 tests = [
1034 ("value__c__in", [14], self.objs[3:5]),
1035 ("value__c__in", [14, 15], self.objs[3:5]),
1036 ("value__0__in", [1], [self.objs[5]]),
1037 ("value__0__in", [1, 3], [self.objs[5]]),
1038 ("value__foo__in", ["bar"], [self.objs[7]]),
1039 (
1040 "value__foo__in",
1041 [KeyTransform("foo", KeyTransform("bax", "value"))],
1042 [self.objs[7]],
1043 ),
1044 ("value__foo__in", [F("value__bax__foo")], [self.objs[7]]),
1045 ("value__foo__in", [F("value__bax__foo"), {}], [self.objs[7]]),
1046 (
1047 "value__foo__in",
1048 [KeyTransform("foo", KeyTransform("bax", "value")), "baz"],
1049 [self.objs[7]],
1050 ),
1051 ("value__foo__in", [F("value__bax__foo"), "baz"], [self.objs[7]]),
1052 ("value__foo__in", ["bar", "baz"], [self.objs[7]]),
1053 ("value__bar__in", [["foo", "bar"]], [self.objs[7]]),
1054 ("value__bar__in", [Value(["foo", "bar"], JSONField())], [self.objs[7]]),
1055 (
1056 "value__bar__in",
1057 [["foo", "bar"], Value({}, JSONField())],
1058 [self.objs[7]],
1059 ),
1060 (
1061 "value__bar__in",
1062 [Value(["foo", "bar"], JSONField()), {"a": "b"}],
1063 [self.objs[7]],
1064 ),
1065 ("value__bar__in", [["foo", "bar"], ["a"]], [self.objs[7]]),
1066 ("value__bax__in", [{"foo": "bar"}, {"a": "b"}], [self.objs[7]]),
1067 ("value__h__in", [True, "foo"], [self.objs[4]]),
1068 ("value__i__in", [False, "foo"], [self.objs[4]]),
1069 ]
1070 for lookup, value, expected in tests:
1071 with self.subTest(lookup=lookup, value=value), transaction.atomic():
1072 self.assertCountEqual(
1073 NullableJSONModel.objects.filter(**{lookup: value}),
1074 expected,
1075 )
1076
1077 def test_key_values(self):
1078 qs = NullableJSONModel.objects.filter(value__h=True)

Callers

nothing calls this directly

Calls 5

KeyTransformClass · 0.90
FClass · 0.90
ValueClass · 0.90
JSONFieldClass · 0.90
filterMethod · 0.45

Tested by

no test coverage detected