Exemple #1
0
    def testCase100(self):
        data = {'a': {'b': {'c': 2}}}
        D = JSONData({})
        n = JSONPointer('')
        n = n.get_node(D.data)
        D.branch_add(n,None,data)

        assert D.data == data
        pass
Exemple #2
0
    def testCase100(self):
        data = {'a': {'b': {'c': 2}}}
        D = JSONData([])
        n = JSONPointer('').get_node(D.data)
        D.branch_add(n, '-', data)
        #         D.branch_add(n,None,data)

        assert D.data == [data]
        pass
Exemple #3
0
    def testCase012(self):

        data = {'a': {'b': {'c': 2}}}
        D = JSONData(data)
        n = JSONPointer("/a/b/c")
        n = n.get_node(D.data, True)
        D.branch_add(n, None, data)

        assert D.data == {'a': {'b': {'a': {'b': {}}}}}
        pass
Exemple #4
0
    def testCase010(self):

        data = {'a': {'b': {'c': 2}}}
        target = {'A': {'A': 'x'}}
        D = JSONData(data)
        n = JSONPointer("/a/b/c")
        n = n.get_node(D.data, True)
        D.branch_add(target['A'], None, n)

        rdata = {'A': {'c': 2}}
        assert target == rdata
        pass
Exemple #5
0
    def testCase010(self):

        data = [[[2]]]
        target = {'A': {'A': [3]}}
        D = JSONData(data)
        n = JSONPointer("/0/0")
        n = n.get_node(D.data)
        D.branch_add(target['A']['A'], None, n)

        rdata = {'A': {'A': [2]}}
        assert target == rdata
        pass
Exemple #6
0
    def testCase100(self):
        n3 = { 'A': {'a0': { 'b0': { 'c0': 2 }, 'b1': {'c0': 3}, 'b2': {'c0': 4} }}}
        n4 = { 'B': {'a0': { 'b0': { 'c0': 2 }, 'b1': {'c0': 3}, 'b2': {'c0': 4} }}}
        n6 = { 'x0': { 'x1': { 'x2': n4 }} }
         
        sl6 = [ n3, n6, n4, ]
         
        p0 = JSONData.getPointerPath(n4['B']['a0']['b2'],sl6)
        resx = [[1, 'x0', 'x1', 'x2', 'B', 'a0', 'b2']]
        assert p0 == resx

        p0 = JSONData.getPointerPath(n4['B']['a0']['b2'],sl6,JSONData.FIRST)
        resx = [[1, 'x0', 'x1', 'x2', 'B', 'a0', 'b2']]
        assert p0 == resx
Exemple #7
0
 def testCase500(self):
     """Equal."""
     n0 = [[[2]]]
     n1 = [[[2]]]
     ret = JSONData.getTreeDiff(n0, n1)
     assert ret == True
     pass
Exemple #8
0
    def testCase820(self):
        """Diff."""
        mydiffs = []
        n0 = [0, [3], [[0, 1]], [[2]]]
        n1 = [1, [1], [[0, 2]], ['y', ['z', 3]]]
        ret = JSONData.getTreeDiff(n0, n1, mydiffs, True)
        assert ret == False

        assert mydiffs == [{
            'n1[0]': 1,
            'dl': 0,
            'n0[0]': 0
        }, {
            'dl': 1,
            'n0[1][0]': 3,
            'n1[1][0]': 1
        }, {
            'n1[2][0][1]': 2,
            'dl': 2,
            'n0[2][0][1]': 1
        }, {
            'dl': 1,
            'n0[3]': [[2]],
            'n1[3]': ['y', ['z', 3]]
        }]
        pass
Exemple #9
0
 def testCase504(self):
     """Diff."""
     n0 = [[[2]]]
     n1 = ['x', ['y', ['z', 2]]]
     ret = JSONData.getTreeDiff(n0, n1)
     assert ret == False
     pass
Exemple #10
0
    def testCase100(self):
        c0 = {'c0': 4}
        n3 = {'A': {'a0': {'b0': c0, 'b1': {'c0': 3}, 'b2': c0}}}
        n4 = {'B': {'a0': {'b0': {'c0': 2}, 'b1': c0, 'b2': c0}}}
        n6 = {'x0': {'x1': {'x2': n4}}}
        n7 = {'y0': {'y1': n4}}
        n8 = {'y0': {'y1': c0}}

        sl6 = [
            n3,
            n6,
            n4,
            n7,
            n8,
        ]

        p0 = JSONData.getPointerPath(n4['B']['a0']['b2']['c0'], sl6,
                                     JSONData.ALL)
        resx = [[0, 'A', 'a0', 'b0', 'c0'], [0, 'A', 'a0', 'b2', 'c0'],
                [1, 'x0', 'x1', 'x2', 'B', 'a0', 'b1', 'c0'],
                [1, 'x0', 'x1', 'x2', 'B', 'a0', 'b2', 'c0'],
                [2, 'B', 'a0', 'b1', 'c0'], [2, 'B', 'a0', 'b2', 'c0'],
                [3, 'y0', 'y1', 'B', 'a0', 'b1', 'c0'],
                [3, 'y0', 'y1', 'B', 'a0', 'b2', 'c0'], [4, 'y0', 'y1', 'c0']]
        assert p0 == resx
Exemple #11
0
 def testCase500(self):
     """Equal."""
     n0 = {'a': {'b': {'c': [2]}}}
     n1 = {'a': {'b': {'c': [2]}}}
     ret = JSONData.getTreeDiff(n0, n1)
     assert ret == True
     pass
Exemple #12
0
    def testCase021(self):
        c0 = [4]

        n0 = [[{'c0': 'c0'}, {'c3': [3]}, ['c0']]]
        n1 = [[{'c0': c0}, {'c3': [3]}, ['c0']]]
        n2 = [[{'c0': 'c0'}, {'c3': [3]}, [c0]]]

        sl = [
            n0,
            n1,
            n2,
        ]

        p0 = JSONData.getPointerPath(c0, sl, JSONData.ALL)
        resx = [[1, 0, 0, 'c0'], [2, 0, 2, 0]]
        assert p0 == resx

        pathlst = []
        for rx in resx:
            pathlst.append(JSONPointer(rx).get_pointer())
        pathx = [
            u'/1/0/0/c0',
            u'/2/0/2/0',
        ]
        assert pathlst == pathx

        vallst = []
        for rx in resx:
            vallst.append(JSONPointer(rx).get_node_or_value(sl))
        vallstx = [
            [4],
            [4],
        ]
        assert vallst == vallstx
Exemple #13
0
 def testCase503(self):
     """Diff."""
     n0 = {'a': {'b': [{'c': 2}]}}
     n1 = {'a': {'b': [{'C': 2}]}}
     ret = JSONData.getTreeDiff(n0, n1)
     assert ret == False
     pass
Exemple #14
0
 def testCase100(self):
     n5 = [ 12 ]
     sl5 = [ n5, ]
     
     p0 = JSONData.getPointerPath(n5,sl5)
     resx = [[0]]
     assert p0 == resx
     pass
Exemple #15
0
    def testCase110(self):
        n3 = [ [ [ [ 2 ], [ [ 3 ] ], [ [ 4 ] ] ] ] ]
        n4 = [ [ [ [ 3 ], [ [ 4 ] ], [ [ 5 ] ] ] ] ]
        sl4 = [ n3, n4, ]

        p0 = JSONData.getPointerPath(n4,sl4)
        resx = [[1]]
        assert p0 == resx
        pass
Exemple #16
0
    def testCase110(self):
        n3 = { 'A': {'a0': { 'b0': { 'c0': 2 }, 'b1': {'c0': 3}, 'b2': {'c0': 4} }}}
        n4 = { 'B': {'a0': { 'b0': { 'c0': 2 }, 'b1': {'c0': 3}, 'b2': {'c0': 4} }}}
        sl4 = [ n3, n4, ]

        p0 = JSONData.getPointerPath(n4,sl4)
        resx = [[1]]
        assert p0 == resx
        pass
Exemple #17
0
    def testCase100(self):
        c0 = [ 4 ]
        
        n3 = [ [ [ c0,    [ [ 3 ] ], [ c0 ] ] ] ]
        n4 = [ [ [ [ 3 ], [ c0 ],    [ c0 ] ] ] ]
        n6 = [ [ [ [ n4 ] ] ] ]
        n7 = [ [ n4 ] ]
        n8 = [ [ c0 ] ]

        sl6 = [ n3, n6, n4, n7, n8, ]

        p0 = JSONData.getPointerPath(n4[0][0][2][0],sl6,JSONData.ALL)
        resx = [
            [0, 0, 0, 0], 
            [0, 0, 0, 2, 0], 
            [1, 0, 0, 0, 0, 0, 0, 1, 0], 
            [1, 0, 0, 0, 0, 0, 0, 2, 0], 
            [2, 0, 0, 1, 0], 
            [2, 0, 0, 2, 0], 
            [3, 0, 0, 0, 0, 1, 0], 
            [3, 0, 0, 0, 0, 2, 0], 
            [4, 0, 0]
        ]
        assert p0 == resx
        
        pathlst = []
        for rx in resx:
            pathlst.append(JSONPointer(rx).get_pointer())
        pathx = [
            u'/0/0/0/0', 
            u'/0/0/0/2/0', 
            u'/1/0/0/0/0/0/0/1/0', 
            u'/1/0/0/0/0/0/0/2/0', 
            u'/2/0/0/1/0', 
            u'/2/0/0/2/0', 
            u'/3/0/0/0/0/1/0', 
            u'/3/0/0/0/0/2/0', 
            u'/4/0/0'
        ]
        assert pathlst == pathx
        
        vallst = []
        for rx in resx:
            vallst.append(JSONPointer(rx).get_node_or_value(sl6))
        vallstx = [
            [4],
            [4],
            [4],
            [4],
            [4],
            [4],
            [4],
            [4],
            [4]
        ]
        assert vallst == vallstx
Exemple #18
0
    def testCase800(self):
        """Diff."""
        mydiffs = []
        n0 = { 'x': {'y': 1}}
        n1 = { 'x': {'y': 2}}
        ret = JSONData.getTreeDiff(n0, n1, mydiffs, True)
        assert ret == False

        assert mydiffs == [{'dl': 1, 'n1[x][y]': 2, 'n0[x][y]': 1}]         
        pass
Exemple #19
0
    def testCase602(self):
        """Diff."""
        mydiffs = []
        n0 = [[[2]]]
        n1 = [[['z', 3]]]
        ret = JSONData.getTreeDiff(n0, n1, mydiffs)
        assert ret == False

        assert mydiffs == [{'dl': 2, 'n1[0][0]': ['z', 3], 'n0[0][0]': [2]}]
        pass
Exemple #20
0
    def testCase802(self):
        """Diff."""
        mydiffs = []
        n0 = [[[0, 1]]]
        n1 = [[[0, 2]]]
        ret = JSONData.getTreeDiff(n0, n1, mydiffs, True)
        assert ret == False

        assert mydiffs == [{'n0[0][0][1]': 1, 'dl': 2, 'n1[0][0][1]': 2}]
        pass
Exemple #21
0
    def testCase701(self):
        """Diff."""
        mydiffs = []
        n0 = [[[2]]]
        n1 = [['y', ['z', 3]]]
        ret = JSONData.getTreeDiff(n0, n1, mydiffs, True)
        assert ret == False

        assert mydiffs == [{'n1[0]': ['y', ['z', 3]], 'dl': 1, 'n0[0]': [[2]]}]
        pass
Exemple #22
0
    def testCase602(self):
        """Diff."""
        mydiffs = []
        n0 = { 'a': { 'b': { 'c': 2 }}}
        n1 = { 'a': { 'b': { 'C': 3 }}}
        ret = JSONData.getTreeDiff(n0, n1, mydiffs)
        assert ret == False

        assert mydiffs == [{'dl': 2, 'n0[a][b][c]': 2, 'n1[a][b]': {'C': 3}}]    
        pass
Exemple #23
0
    def testCase820(self):
        """Diff."""
        mydiffs = []
        n0 = { 'a': { 'b': { 'c': 2 }}, 'x': {'y': 1}}
        n1 = { 'a': { 'B': { 'C': 3 }}, 'x': {'y': 2}}
        ret = JSONData.getTreeDiff(n0, n1, mydiffs, True)
        assert ret == False

        assert mydiffs == [{'dl': 1, 'n0[a][b]': {'c': 2}, 'n1[a]': {'B': {'C': 3}}}, {'dl': 1, 'n1[x][y]': 2, 'n0[x][y]': 1}]         
        pass
Exemple #24
0
    def testCase600(self):
        """Diff."""
        mydiffs = []
        n0 = { 'a': { 'b': { 'c': 2 }}}
        n1 = { 'A': { 'B': { 'C': 3 }}}
        ret = JSONData.getTreeDiff(n0, n1, mydiffs)
        assert ret == False

        assert mydiffs == [{'n1': {'A': {'B': {'C': 3}}}, 'n0[a]': {'b': {'c': 2}}, 'dl': 0}]
        pass
Exemple #25
0
    def testCase810(self):
        """Diff."""
        mydiffs = []
        n0 = { 'a': { 'b': { 'c': 2 }}, 'x': 0, 'z': 3, 'w': {'v': 1} }
        n1 = { 'A': { 'B': { 'C': 3 }}, 'y': 1, 'z': 4, 'w': {'v': 2} }
        ret = JSONData.getTreeDiff(n0, n1, mydiffs, True)
        assert ret == False

        assert mydiffs ==  [{'n1': {'A': {'B': {'C': 3}}, 'y': 1, 'z': 4, 'w': {'v': 2}}, 'n0[a]': {'b': {'c': 2}}, 'dl': 0}, {'n1': {'A': {'B': {'C': 3}}, 'y': 1, 'z': 4, 'w': {'v': 2}}, 'dl': 0, 'n0[x]': 0}, {'dl': 0, 'n1[z]': 4, 'n0[z]': 3}, {'n1[w][v]': 2, 'n0[w][v]': 1, 'dl': 1}]         
        pass
Exemple #26
0
    def testCase100(self):

        n3 = [[[[2], [[3]], [[4]]]]]
        n4 = [[[[3], [[4]], [[5]]]]]
        n6 = [[[[n3, n4]]]]
        sl6 = [
            n3,
            n6,
            n4,
        ]

        a = n4[0][0][2]
        assert n4[0][0][2] == [[5]]

        p0 = JSONData.getPointerPath(n4[0][0][2], n4)
        resx = [[0, 0, 2]]
        assert p0 == resx

        p0 = JSONData.getPointerPath(n4[0][0][2], sl6)
        resx = [[1, 0, 0, 0, 1, 0, 0, 2]]
        assert p0 == resx
Exemple #27
0
    def testCase600(self):
        """Diff."""
        mydiffs = []
        n0 = [[[2]]]
        n1 = ['x', ['y', ['z', 3]]]
        ret = JSONData.getTreeDiff(n0, n1, mydiffs)
        assert ret == False

        assert mydiffs == [{
            'n0': [[[2]]],
            'n1': ['x', ['y', ['z', 3]]],
            'dl': 0
        }]
        pass
Exemple #28
0
    def testCase100(self):
        c0 = [ 4 ]
        
        n3 = [ [ [ 1,    [ [ 3 ] ],  [ c0 ] ] ] ]
        n4 = [ [ [ [ 3 ], [ c0 ],    [ c0 ] ] ] ]

        sl6 = [ n3, ]

        p0 = JSONData.getPointerPath(n4[0][0][2][0],sl6,JSONData.ALL)
        resx = [
            [0, 0, 0, 2, 0], 
        ]
        
        assert p0 == resx
Exemple #29
0
    def testCase022(self):
        c0 = [4]

        n0 = [[{'c0': 'c0'}, {'c3': [3]}, ['c0']]]
        n1 = [[{'c0': c0}, {'c3': [3]}, ['c0']]]
        n2 = [[{'c0': 'c0'}, {'c3': [3]}, [c0]]]

        n3 = [[{'c0': c0}, {'c3': [3]}, [c0]]]
        n4 = {'x0': [[[3], {'c0': c0}, [c0]]]}
        n6 = [[[[n4]]]]
        n7 = [[n4]]
        n8 = {'x': {'c0': c0}}

        sl = [
            n0,
            n1,
            n2,
            n3,
            n6,
            n4,
            n7,
            n8,
        ]

        p0 = JSONData.getPointerPath(c0, sl, JSONData.ALL)
        resx = [[1, 0, 0, 'c0'], [2, 0, 2, 0], [3, 0, 0, 'c0'], [3, 0, 2, 0],
                [4, 0, 0, 0, 0, 'x0', 0, 1, 'c0'],
                [4, 0, 0, 0, 0, 'x0', 0, 2, 0], [5, 'x0', 0, 1, 'c0'],
                [5, 'x0', 0, 2, 0], [6, 0, 0, 'x0', 0, 1, 'c0'],
                [6, 0, 0, 'x0', 0, 2, 0], [7, 'x', 'c0']]
        assert p0 == resx

        pathlst = []
        for rx in resx:
            pathlst.append(JSONPointer(rx).get_pointer())
        pathx = [
            u'/1/0/0/c0', u'/2/0/2/0', u'/3/0/0/c0', u'/3/0/2/0',
            u'/4/0/0/0/0/x0/0/1/c0', u'/4/0/0/0/0/x0/0/2/0', u'/5/x0/0/1/c0',
            u'/5/x0/0/2/0', u'/6/0/0/x0/0/1/c0', u'/6/0/0/x0/0/2/0', u'/7/x/c0'
        ]
        assert pathlst == pathx

        vallst = []
        for rx in resx:
            vallst.append(JSONPointer(rx).get_node_or_value(sl))
        vallstx = [[4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4]]
        assert vallst == vallstx
Exemple #30
0
    def testCase000(self):
        global jval
        global jdata

        jval = {
            'value0': [
                11,
                22,
                33,
            ],
            'value1': [
                100,
                200,
                300,
            ]
        }
        jdata = JSONData(jval)