summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/model_fields/test_jsonfield.py19
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',