示例#1
0
def compute_diff(changes, diff_function):
    diff = Changes()
    diff.renames = changes.renames
    for name, item in changes.created.iteritems():
        if name not in changes.renames.values():
            diff.created[name] = diff_function(None, item)

    for name, item in changes.deleted.iteritems():
        if name not in changes.renames:
            diff.deleted[name] = diff_function(item, None)
        else:
            new_name = changes.renames[name]
            new_item = changes.created[new_name]
            diff.modified[name] = diff_function(item, new_item)

    for name, item in changes.modified.iteritems():
        mod = changes.modified[name]
        diff.modified[name] = diff_function(mod[0], mod[1])

    return diff
示例#2
0
def compute_diff(changes, diff_function):
    diff = Changes()
    diff.renames = changes.renames
    for name, item in changes.created.iteritems():
        if name not in changes.renames.values():
            diff.created[name] = diff_function(None, item)

    for name, item in changes.deleted.iteritems():
        if name not in changes.renames:
            diff.deleted[name] = diff_function(item, None)
        else:
            new_name = changes.renames[name]
            new_item = changes.created[new_name]
            diff.modified[name] = diff_function(item, new_item)

    for name, item in changes.modified.iteritems():
        mod = changes.modified[name]
        diff.modified[name] = diff_function(mod[0], mod[1])

    return diff
    def test_changes(self):
        c = Changes()
        c.add_created(CellName("resource1"), "resource1")
        c.add_created(CellName("resource2"), "resource2")
        c.add_deleted(CellName("resource3"), "resource3")

        c.add_modified(CellName("resource4"), Modification("resource3", "resource4"))
        c.add_rename(CellName("resource5"), CellName("resource6"))
        c.sim_limit = 23

        s = c.serialize()
        deserializer = ChangesDeserializer(CellName, str)
        c2 = deserializer.deserialize(s)
        self.assertEqual(c.created, c2.created)
        self.assertEqual(c.deleted, c2.deleted)
        self.assertEqual(c.modified, c2.modified)
        self.assertEqual(c.renames, c2.renames)
示例#4
0
    def test_changes(self):
        c = Changes()
        c.add_created(CellName("resource1"), "resource1")
        c.add_created(CellName("resource2"), "resource2")
        c.add_deleted(CellName("resource3"), "resource3")

        c.add_modified(CellName("resource4"),
                       Modification("resource3", "resource4"))
        c.add_rename(CellName("resource5"), CellName("resource6"))
        c.sim_limit = 23

        s = c.serialize()
        deserializer = ChangesDeserializer(CellName, str)
        c2 = deserializer.deserialize(s)
        self.assertEqual(c.created, c2.created)
        self.assertEqual(c.deleted, c2.deleted)
        self.assertEqual(c.modified, c2.modified)
        self.assertEqual(c.renames, c2.renames)