Пример #1
0
 def test_operation_equality(self):
     add = jsonpatch.AddOperation({
         'path': '/new-element',
         'value': 'new-value'
     })
     add2 = jsonpatch.AddOperation({
         'path': '/new-element',
         'value': 'new-value'
     })
     rm = jsonpatch.RemoveOperation({'path': '/target'})
     self.assertEqual(add, add2)
     self.assertNotEqual(add, rm)
Пример #2
0
    def apply(self, obj):
        try:
            from_ptr = jsonpatch.JsonPointer(self.location)
        except KeyError as ex:
            raise jsonpatch.InvalidJsonPatch(
                "The operation does not contain a 'from' member")

        subobj, part = from_ptr.to_last(obj)
        try:
            value = subobj[part]
        except (KeyError, IndexError) as ex:
            raise jsonpatch.JsonPatchConflict(str(ex))

        obj = jsonpatch.RemoveOperation({
            'op': 'remove',
            'path': self.location
        }).apply(obj)

        obj = jsonpatch.AddOperation({
            'op':
            'add',
            'path':
            self.location,
            'value': [v.strip() for v in value.split(",") if v.strip()]
        }).apply(obj)

        return obj
Пример #3
0
    def apply(self, obj):
        try:
            from_ptr = jsonpatch.JsonPointer(self.location)
        except KeyError as ex:
            raise jsonpatch.InvalidJsonPatch(
                "The operation does not contain a 'from' member")

        subobj, part = from_ptr.to_last(obj)
        try:
            value = subobj[part]
        except (KeyError, IndexError) as ex:
            raise jsonpatch.JsonPatchConflict(str(ex))

        obj = jsonpatch.RemoveOperation({
            'op': 'remove',
            'path': self.location
        }).apply(obj)

        obj = jsonpatch.AddOperation({
            'op':
            'add',
            'path':
            self.location,
            'value':
            dateutil.parser.parse(value).strftime("%Y-%m-%d")
        }).apply(obj)

        return obj
Пример #4
0
 def test_add_operation_structure(self):
     with self.assertRaises(jsonpatch.InvalidJsonPatch):
         jsonpatch.AddOperation({'path': '/'}).apply({})