summaryrefslogtreecommitdiff
path: root/tests/test_json.py
diff options
context:
space:
mode:
authorshacharPash <shachar.pashchur@redis.com>2023-05-14 16:39:52 +0300
committershacharPash <shachar.pashchur@redis.com>2023-05-14 16:39:52 +0300
commit130cf4e874c2caf03eefa26a77b7a4e80539a942 (patch)
tree60f5d631e393393ccbf0da216786d555e04a3206 /tests/test_json.py
parent35b7e09a57a1b7e2931d90e4b13858b68cee97cf (diff)
downloadredis-py-130cf4e874c2caf03eefa26a77b7a4e80539a942.tar.gz
support JSON.MERGE Command
Diffstat (limited to 'tests/test_json.py')
-rw-r--r--tests/test_json.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/test_json.py b/tests/test_json.py
index 8e8da05..9d85c1e 100644
--- a/tests/test_json.py
+++ b/tests/test_json.py
@@ -48,6 +48,22 @@ def test_json_get_jset(client):
@pytest.mark.redismod
+@skip_ifmodversion_lt("99.99.99", "ReJSON") # todo: update after the release
+def test_json_merge(client):
+ assert client.json().set("test_merge", Path.root_path(), '{"person":{"name":"John Doe","age":25,"address":{"home":"123 Main Street"},"phone":"123-456-7890"}}')
+ assert client.json().merge("test_merge", Path.root_path(), '{"person":{"age":30}}')
+ assert client.json().get("test_merge") == '{"person":{"name":"John Doe","age":30,"address":{"home":"123 Main Street"},"phone":"123-456-7890"}}'
+
+ # Test with root path path $.a.b
+ assert client.json().merge("test_merge", Path("person", "address"), '{"work":"Redis office"}')
+ assert client.json().get("test_merge") == '{"person":{"name":"John Doe","age":30,"address":{"home":"123 Main Street","work":"Redis office"},"phone":"123-456-7890"}}'
+
+ # Test with null value to delete a value
+ assert client.json().merge("test_merge", Path("person", "address"), '{"work":null}')
+ assert client.json().get("test_merge") == '{"person":{"name":"John Doe","age":30,"address":{"home":"123 Main Street"},"phone":"123-456-7890"}}'
+
+
+@pytest.mark.redismod
def test_nonascii_setgetdelete(client):
assert client.json().set("notascii", Path.root_path(), "hyvää-élève")
assert "hyvää-élève" == client.json().get("notascii", no_escape=True)