(self)
| 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) |
nothing calls this directly
no test coverage detected