add various tests
This commit is contained in:
32
tests.py
32
tests.py
@@ -7,6 +7,7 @@ import json
|
|||||||
import doctest
|
import doctest
|
||||||
import unittest
|
import unittest
|
||||||
import jsonpatch
|
import jsonpatch
|
||||||
|
import jsonpointer
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
@@ -112,6 +113,11 @@ class ApplyPatchTestCase(unittest.TestCase):
|
|||||||
jsonpatch.apply_patch(obj, [{'op': 'test', 'path': '/baz', 'value': 'qux'},
|
jsonpatch.apply_patch(obj, [{'op': 'test', 'path': '/baz', 'value': 'qux'},
|
||||||
{'op': 'test', 'path': '/foo/1', 'value': 2}])
|
{'op': 'test', 'path': '/foo/1', 'value': 2}])
|
||||||
|
|
||||||
|
def test_test_whole_obj(self):
|
||||||
|
obj = {'baz': 1}
|
||||||
|
jsonpatch.apply_patch(obj, [{'op': 'test', 'path': '', 'value': obj}])
|
||||||
|
|
||||||
|
|
||||||
def test_test_error(self):
|
def test_test_error(self):
|
||||||
obj = {'bar': 'qux'}
|
obj = {'bar': 'qux'}
|
||||||
self.assertRaises(jsonpatch.JsonPatchTestFailed,
|
self.assertRaises(jsonpatch.JsonPatchTestFailed,
|
||||||
@@ -284,6 +290,31 @@ class InvalidInputTests(unittest.TestCase):
|
|||||||
self.assertRaises(jsonpatch.JsonPatchException, jsonpatch.apply_patch, src, patch_obj)
|
self.assertRaises(jsonpatch.JsonPatchException, jsonpatch.apply_patch, src, patch_obj)
|
||||||
|
|
||||||
|
|
||||||
|
class ConflictTests(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_remove_indexerror(self):
|
||||||
|
src = {"foo": [1, 2]}
|
||||||
|
patch_obj = [ { "op": "remove", "path": "/foo/10"} ]
|
||||||
|
self.assertRaises(jsonpatch.JsonPatchConflict, jsonpatch.apply_patch, src, patch_obj)
|
||||||
|
|
||||||
|
def test_remove_keyerror(self):
|
||||||
|
src = {"foo": [1, 2]}
|
||||||
|
patch_obj = [ { "op": "remove", "path": "/foo/b"} ]
|
||||||
|
self.assertRaises(jsonpointer.JsonPointerException, jsonpatch.apply_patch, src, patch_obj)
|
||||||
|
|
||||||
|
def test_insert_oob(self):
|
||||||
|
src = {"foo": [1, 2]}
|
||||||
|
patch_obj = [ { "op": "add", "path": "/foo/10", "value": 1} ]
|
||||||
|
self.assertRaises(jsonpatch.JsonPatchConflict, jsonpatch.apply_patch, src, patch_obj)
|
||||||
|
|
||||||
|
def test_move_into_child(self):
|
||||||
|
src = {"foo": {"bar": {"baz": 1}}}
|
||||||
|
patch_obj = [ { "op": "move", "from": "/foo", "path": "/foo/bar" } ]
|
||||||
|
self.assertRaises(jsonpatch.JsonPatchException, jsonpatch.apply_patch, src, patch_obj)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
modules = ['jsonpatch']
|
modules = ['jsonpatch']
|
||||||
|
|
||||||
|
|
||||||
@@ -294,6 +325,7 @@ def get_suite():
|
|||||||
suite.addTest(unittest.makeSuite(EqualityTestCase))
|
suite.addTest(unittest.makeSuite(EqualityTestCase))
|
||||||
suite.addTest(unittest.makeSuite(MakePatchTestCase))
|
suite.addTest(unittest.makeSuite(MakePatchTestCase))
|
||||||
suite.addTest(unittest.makeSuite(InvalidInputTests))
|
suite.addTest(unittest.makeSuite(InvalidInputTests))
|
||||||
|
suite.addTest(unittest.makeSuite(ConflictTests))
|
||||||
return suite
|
return suite
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user