| 151 | @pytest.mark.redismod |
| 152 | @skip_ifmodversion_lt("2.06.00", "ReJSON") # todo: update after the release |
| 153 | def test_json_merge(client): |
| 154 | # Test with root path $ |
| 155 | assert client.json().set( |
| 156 | "person_data", |
| 157 | "$", |
| 158 | {"person1": {"personal_data": {"name": "John"}}}, |
| 159 | ) |
| 160 | assert client.json().merge( |
| 161 | "person_data", "$", {"person1": {"personal_data": {"hobbies": "reading"}}} |
| 162 | ) |
| 163 | assert client.json().get("person_data") == { |
| 164 | "person1": {"personal_data": {"name": "John", "hobbies": "reading"}} |
| 165 | } |
| 166 | |
| 167 | # Test with root path path $.person1.personal_data |
| 168 | assert client.json().merge( |
| 169 | "person_data", "$.person1.personal_data", {"country": "Israel"} |
| 170 | ) |
| 171 | assert client.json().get("person_data") == { |
| 172 | "person1": { |
| 173 | "personal_data": {"name": "John", "hobbies": "reading", "country": "Israel"} |
| 174 | } |
| 175 | } |
| 176 | |
| 177 | # Test with null value to delete a value |
| 178 | assert client.json().merge("person_data", "$.person1.personal_data", {"name": None}) |
| 179 | assert client.json().get("person_data") == { |
| 180 | "person1": {"personal_data": {"country": "Israel", "hobbies": "reading"}} |
| 181 | } |
| 182 | |
| 183 | |
| 184 | @pytest.mark.redismod |