summaryrefslogtreecommitdiff
path: root/tests.py
diff options
context:
space:
mode:
authorKirill Goldshtein <goldshtein.kirill@gmail.com>2016-05-04 09:53:57 +0300
committerKirill Goldshtein <goldshtein.kirill@gmail.com>2016-05-04 09:53:57 +0300
commit72a90e3ff1e75c6628106509568de9e22ca2b259 (patch)
tree1c2ec577483b9775f11028f11e1fc79d3178632c /tests.py
parent5cc9bee572f6207166122ac2ba9cecde0598930a (diff)
downloadpython-json-patch-72a90e3ff1e75c6628106509568de9e22ca2b259.tar.gz
Fix KeyError in add/remove optimization
Diffstat (limited to 'tests.py')
-rwxr-xr-xtests.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/tests.py b/tests.py
index 8b0b52c..5acf24b 100755
--- a/tests.py
+++ b/tests.py
@@ -317,6 +317,15 @@ class MakePatchTestCase(unittest.TestCase):
res = jsonpatch.apply_patch(src, patch)
self.assertEqual(res, dst)
+ def test_use_replace_instead_of_remove_add_nested(self):
+ src = {'foo': [{'bar': 1, 'baz': 2}, {'bar': 2, 'baz': 3}]}
+ dst = {'foo': [{'bar': 1}, {'bar': 2, 'baz': 3}]}
+ patch = list(jsonpatch.make_patch(src, dst))
+ self.assertEqual(len(patch), 1)
+ self.assertEqual(patch[0]['op'], 'replace')
+ res = jsonpatch.apply_patch(src, patch)
+ self.assertEqual(res, dst)
+
def test_use_move_instead_of_remove_add(self):
src = {'foo': [4, 1, 2, 3]}
dst = {'foo': [1, 2, 3, 4]}