diff options
Diffstat (limited to 'tests/model_fields')
| -rw-r--r-- | tests/model_fields/test_jsonfield.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/tests/model_fields/test_jsonfield.py b/tests/model_fields/test_jsonfield.py index bc0a89fd7d..9a9e1a1286 100644 --- a/tests/model_fields/test_jsonfield.py +++ b/tests/model_fields/test_jsonfield.py @@ -441,6 +441,10 @@ class TestQuerying(TestCase): [self.objs[3], self.objs[4], self.objs[6]], ) + @skipIf( + connection.vendor == 'oracle', + "Oracle doesn't support contains lookup.", + ) def test_contains(self): tests = [ ({}, self.objs[2:5] + self.objs[6:8]), @@ -456,6 +460,17 @@ class TestQuerying(TestCase): qs = NullableJSONModel.objects.filter(value__contains=value) self.assertSequenceEqual(qs, expected) + @skipUnless( + connection.vendor == 'oracle', + "Oracle doesn't support contains lookup.", + ) + def test_contains_unsupported(self): + msg = 'contains lookup is not supported on Oracle.' + with self.assertRaisesMessage(NotSupportedError, msg): + NullableJSONModel.objects.filter( + value__contains={'baz': {'a': 'b', 'c': 'd'}}, + ).get() + @skipUnlessDBFeature('supports_primitives_in_json_field') def test_contains_primitives(self): for value in self.primitives: @@ -662,12 +677,12 @@ class TestQuerying(TestCase): ('value__baz__has_key', 'c'), ('value__baz__has_keys', ['a', 'c']), ('value__baz__has_any_keys', ['a', 'x']), - ('value__contains', KeyTransform('bax', 'value')), ('value__has_key', KeyTextTransform('foo', 'value')), ) - # contained_by lookup is not supported on Oracle. + # contained_by and contains lookups are not supported on Oracle. if connection.vendor != 'oracle': tests += ( + ('value__contains', KeyTransform('bax', 'value')), ('value__baz__contained_by', {'a': 'b', 'c': 'd', 'e': 'f'}), ( 'value__contained_by', |
