def test_content_modify(self):
     """check between time 0 and 1, just a content edit"""
     version0 = BlockVersion(self.block, 0)
     version1 = BlockVersion(self.block, 1)
     changes = compare_remote_versions(self.service, version0, version1)
     self.assertEqual(0, len(changes.deleted))
     self.assertEqual(0, len(changes.created))
     self.assertEqual(0, len(changes.renames))
     self.assertEqual(1, len(changes.modified))
     diff = compute_diff(changes, resource_diff_function)
     self.assertEqual((None, "--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n" "-hello\n+hello2"), diff.modified["r1.h"])
    def test_diff_text(self):
        base = {'f1': 'Hola que tal\nBien Gracias\n',
                'f2': 'Hasta luego\n'}
        other = {'f1': 'Hola que tal\nBien, Bien\n',
                 'f3': 'Hasta luego lucas\n'}

        changes = compare(base, other)
        diff = compute_diff(changes, text_unified_diff)
        self.assertIn('-Hasta luego', diff.deleted['f2'])
        self.assertIn('+Hasta luego lucas', diff.created['f3'])
        self.assertIn('-Bien Gracias', diff.modified['f1'])
        self.assertIn('+Bien, Bien', diff.modified['f1'])
 def test_content_modify(self):
     '''check between time 0 and 1, just a content edit'''
     version0 = BlockVersion(self.block, 0)
     version1 = BlockVersion(self.block, 1)
     changes = compare_remote_versions(self.service, version0, version1)
     self.assertEqual(0, len(changes.deleted))
     self.assertEqual(0, len(changes.created))
     self.assertEqual(0, len(changes.renames))
     self.assertEqual(1, len(changes.modified))
     diff = compute_diff(changes, resource_diff_function)
     self.assertEqual((None, '--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n'
                       '-hello\n+hello2'), diff.modified['r1.h'])
Exemple #4
0
    def test_diff_text(self):
        base = {'f1': 'Hola que tal\nBien Gracias\n', 'f2': 'Hasta luego\n'}
        other = {
            'f1': 'Hola que tal\nBien, Bien\n',
            'f3': 'Hasta luego lucas\n'
        }

        changes = compare(base, other)
        diff = compute_diff(changes, text_unified_diff)
        self.assertIn('-Hasta luego', diff.deleted['f2'])
        self.assertIn('+Hasta luego lucas', diff.created['f3'])
        self.assertIn('-Bien Gracias', diff.modified['f1'])
        self.assertIn('+Bien, Bien', diff.modified['f1'])
    def test_delete(self):
        """4 => 5 r2.h is deleted"""
        version4 = BlockVersion(self.block, 4)
        version5 = BlockVersion(self.block, 5)
        changes = compare_remote_versions(self.service, version4, version5)

        self.assertEqual(1, len(changes.deleted))
        self.assertEqual(0, len(changes.created))
        self.assertEqual(0, len(changes.renames))
        self.assertEqual(0, len(changes.modified))
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual("--- base\n\n+++ other\n\n@@ -1 +0,0 @@\n\n-bye", diff.deleted["r2.h"].content)
        self.assertIsNotNone(diff.deleted["r2.h"].cell)
    def test_cell_content_modify(self):
        """between time 0 and 2 there is content and biitype change"""
        version0 = BlockVersion(self.block, 0)
        version2 = BlockVersion(self.block, 2)
        changes = compare_remote_versions(self.service, version0, version2)

        self.assertEqual(0, len(changes.deleted))
        self.assertEqual(0, len(changes.created))
        self.assertEqual(0, len(changes.renames))
        self.assertEqual(1, len(changes.modified))
        self.assertEqual(UNKNOWN, changes.modified["r1.h"].old.cell.type)
        self.assertEqual(CPP, changes.modified["r1.h"].new.cell.type)
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual("--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n" "-hello\n+hello2", diff.modified["r1.h"].content)
    def test_delete(self):
        '''4 => 5 r2.h is deleted'''
        version4 = BlockVersion(self.block, 4)
        version5 = BlockVersion(self.block, 5)
        changes = compare_remote_versions(self.service, version4, version5)

        self.assertEqual(1, len(changes.deleted))
        self.assertEqual(0, len(changes.created))
        self.assertEqual(0, len(changes.renames))
        self.assertEqual(0, len(changes.modified))
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual('--- base\n\n+++ other\n\n@@ -1 +0,0 @@\n\n-bye',
                         diff.deleted['r2.h'].content)
        self.assertIsNotNone(diff.deleted['r2.h'].cell)
    def test_resource_created(self):
        """ 3 => 4 cell creation"""
        version3 = BlockVersion(self.block, 3)
        version4 = BlockVersion(self.block, 4)
        changes = compare_remote_versions(self.service, version3, version4)

        self.assertEqual(0, len(changes.deleted))
        self.assertEqual(1, len(changes.created))
        self.assertEqual(0, len(changes.renames))
        self.assertEqual(0, len(changes.modified))
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual("--- base\n\n+++ other\n\n@@ -0,0 +1 @@\n\n+bye", diff.created["r2.h"].content)
        # TODO: Implement and check diff of cell
        self.assertIsNotNone(diff.created["r2.h"].cell)
    def test_resource_created(self):
        ''' 3 => 4 cell creation'''
        version3 = BlockVersion(self.block, 3)
        version4 = BlockVersion(self.block, 4)
        changes = compare_remote_versions(self.service, version3, version4)

        self.assertEqual(0, len(changes.deleted))
        self.assertEqual(1, len(changes.created))
        self.assertEqual(0, len(changes.renames))
        self.assertEqual(0, len(changes.modified))
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual('--- base\n\n+++ other\n\n@@ -0,0 +1 @@\n\n+bye',
                         diff.created['r2.h'].content)
        #TODO: Implement and check diff of cell
        self.assertIsNotNone(diff.created['r2.h'].cell)
    def test_cell_content_modify(self):
        '''between time 0 and 2 there is content and biitype change'''
        version0 = BlockVersion(self.block, 0)
        version2 = BlockVersion(self.block, 2)
        changes = compare_remote_versions(self.service, version0, version2)

        self.assertEqual(0, len(changes.deleted))
        self.assertEqual(0, len(changes.created))
        self.assertEqual(0, len(changes.renames))
        self.assertEqual(1, len(changes.modified))
        self.assertEqual(UNKNOWN, changes.modified['r1.h'].old.cell.type)
        self.assertEqual(CPP, changes.modified['r1.h'].new.cell.type)
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual(
            '--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n'
            '-hello\n+hello2', diff.modified['r1.h'].content)
    def test_rename(self):
        version5 = BlockVersion(self.block, 5)
        version6 = BlockVersion(self.block, 6)
        changes = compare_remote_versions(self.service, version5, version6)

        self.assertEqual(1, len(changes.deleted))
        self.assertEqual(1, len(changes.created))
        self.assertEqual(1, len(changes.renames))
        self.assertEqual(0, len(changes.modified))
        self.assertEqual('r3.h', changes.renames['r1.h'])
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual(0, len(diff.deleted))
        self.assertEqual(0, len(diff.created))
        self.assertEqual('', diff.modified['r1.h'].content)
        self.assertIsNotNone(diff.modified['r1.h'].cell)
        self.assertEqual('r3.h', diff.renames['r1.h'])
    def test_cell_content_modify_single_step(self):
        """ 2=> 3 content modify and biitype change in single step"""
        version2 = BlockVersion(self.block, 2)
        version3 = BlockVersion(self.block, 3)
        changes = compare_remote_versions(self.service, version2, version3)

        self.assertEqual(0, len(changes.deleted))
        self.assertEqual(0, len(changes.created))
        self.assertEqual(0, len(changes.renames))
        self.assertEqual(1, len(changes.modified))
        self.assertEqual(CPP, changes.modified["r1.h"].old.cell.type)
        self.assertEqual(UNKNOWN, changes.modified["r1.h"].new.cell.type)
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual("--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n" "-hello2\n+hello3", diff.modified["r1.h"].content)
        # TODO: Implement and check diff of cell
        self.assertIsNotNone(diff.modified["r1.h"].cell)
    def test_rename_changes(self):
        version6 = BlockVersion(self.block, 6)
        version7 = BlockVersion(self.block, 7)
        changes = compare_remote_versions(self.service, version6, version7)

        self.assertEqual(1, len(changes.deleted))
        self.assertEqual(1, len(changes.created))
        self.assertEqual(1, len(changes.renames))
        self.assertEqual(0, len(changes.modified))
        self.assertEqual("r4.h", changes.renames["r3.h"])
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual(0, len(diff.deleted))
        self.assertEqual(0, len(diff.created))
        self.assertEqual("--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n" "-hello3\n+hello4", diff.modified["r3.h"].content)
        self.assertIsNotNone(diff.modified["r3.h"].cell)
        self.assertEqual("r4.h", diff.renames["r3.h"])
    def test_rename(self):
        version5 = BlockVersion(self.block, 5)
        version6 = BlockVersion(self.block, 6)
        changes = compare_remote_versions(self.service, version5, version6)

        self.assertEqual(1, len(changes.deleted))
        self.assertEqual(1, len(changes.created))
        self.assertEqual(1, len(changes.renames))
        self.assertEqual(0, len(changes.modified))
        self.assertEqual("r3.h", changes.renames["r1.h"])
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual(0, len(diff.deleted))
        self.assertEqual(0, len(diff.created))
        self.assertEqual("", diff.modified["r1.h"].content)
        self.assertIsNotNone(diff.modified["r1.h"].cell)
        self.assertEqual("r3.h", diff.renames["r1.h"])
    def test_modify_content_diff(self):
        r1 = SimpleCell(self.brl_block.block_name + 'r1.h')
        content = Content(id_=None, load=Blob('bye'))
        edition_resources = {'r1.h': Resource(r1, content)}
        changes = compare(self.last_version_resources, edition_resources)

        diff = compute_diff(changes, resource_diff_function)

        self.assertEqual(0, len(diff.deleted))
        self.assertEqual(0, len(diff.created))
        self.assertEqual(0, len(diff.renames))
        self.assertEqual(1, len(diff.modified))
        self.assertEqual('--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n-hello\n+bye',
                         diff.modified['r1.h'].content)
        #print '--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n-hello\n+bye'
        self.assertEqual(Resource(None, '--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n-hello\n+bye'),
                         diff.modified['r1.h'])
    def test_cell_content_modify_single_step(self):
        ''' 2=> 3 content modify and biitype change in single step'''
        version2 = BlockVersion(self.block, 2)
        version3 = BlockVersion(self.block, 3)
        changes = compare_remote_versions(self.service, version2, version3)

        self.assertEqual(0, len(changes.deleted))
        self.assertEqual(0, len(changes.created))
        self.assertEqual(0, len(changes.renames))
        self.assertEqual(1, len(changes.modified))
        self.assertEqual(CPP, changes.modified['r1.h'].old.cell.type)
        self.assertEqual(UNKNOWN, changes.modified['r1.h'].new.cell.type)
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual(
            '--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n'
            '-hello2\n+hello3', diff.modified['r1.h'].content)
        #TODO: Implement and check diff of cell
        self.assertIsNotNone(diff.modified['r1.h'].cell)
Exemple #17
0
def diff(biiapi, block_holder=None, v1=None, v2=None):
    if v1 and v2:  # comparison between two remotes
        changes = compare_remote_versions(biiapi, v1, v2)
    else:
        if not v1:
            v1 = block_holder.parent
        if v1.time == -1:
            changes = compare({}, block_holder.resources)
        else:
            other_block_holder = biiapi.get_block_holder(v1)
            # Filter parent modification
            other_block_holder.parent = v1
            #other_block_holder.commit_config()
            changes = compare(other_block_holder.resources, block_holder.resources)
            changes.deduce_renames()

    from biicode.common.diffmerge.differ import compute_diff
    return compute_diff(changes, resource_diff_function)
    def test_rename_changes(self):
        version6 = BlockVersion(self.block, 6)
        version7 = BlockVersion(self.block, 7)
        changes = compare_remote_versions(self.service, version6, version7)

        self.assertEqual(1, len(changes.deleted))
        self.assertEqual(1, len(changes.created))
        self.assertEqual(1, len(changes.renames))
        self.assertEqual(0, len(changes.modified))
        self.assertEqual('r4.h', changes.renames['r3.h'])
        diff = compute_diff(changes, resource_diff_function)
        self.assertEqual(0, len(diff.deleted))
        self.assertEqual(0, len(diff.created))
        self.assertEqual(
            '--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n'
            '-hello3\n+hello4', diff.modified['r3.h'].content)
        self.assertIsNotNone(diff.modified['r3.h'].cell)
        self.assertEqual('r4.h', diff.renames['r3.h'])
Exemple #19
0
def diff(biiapi, block_holder=None, v1=None, v2=None):
    if v1 and v2:  # comparison between two remotes
        changes = compare_remote_versions(biiapi, v1, v2)
    else:
        if not v1:
            v1 = block_holder.parent
        if v1.time == -1:
            changes = compare({}, block_holder.resources)
        else:
            other_block_holder = biiapi.get_block_holder(v1)
            # Filter parent modification
            other_block_holder.parent = v1
            #other_block_holder.commit_config()
            changes = compare(other_block_holder.resources,
                              block_holder.resources)
            changes.deduce_renames()

    from biicode.common.diffmerge.differ import compute_diff
    return compute_diff(changes, resource_diff_function)
Exemple #20
0
    def test_modify_content_diff(self):
        r1 = SimpleCell(self.brl_block.block_name + 'r1.h')
        content = Content(id_=None, load=Blob('bye'))
        edition_resources = {'r1.h': Resource(r1, content)}
        changes = compare(self.last_version_resources, edition_resources)

        diff = compute_diff(changes, resource_diff_function)

        self.assertEqual(0, len(diff.deleted))
        self.assertEqual(0, len(diff.created))
        self.assertEqual(0, len(diff.renames))
        self.assertEqual(1, len(diff.modified))
        self.assertEqual(
            '--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n-hello\n+bye',
            diff.modified['r1.h'].content)
        #print '--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n-hello\n+bye'
        self.assertEqual(
            Resource(None,
                     '--- base\n\n+++ other\n\n@@ -1 +1 @@\n\n-hello\n+bye'),
            diff.modified['r1.h'])