def test_get_inverted_patch_for_binary_modify(self):
     invert_git_patches = invert_patches.InvertGitPatches(
         patch_text=self.MODIFY_BINARY_PATCH_TEXT_ADD_CHANGES,
         filename='img/file.png')
     self.assertEquals(
         self.MODIFY_BINARY_PATCH_TEXT_REMOVE_CHANGES,
         invert_git_patches.get_inverted_patch_text([], [], None, True))
Beispiel #2
0
 def test_left_and_right_for_inverted_patch(self):
     headers = 'Index: testfile\ndiff --git a/testfile b/testfile\n'
     for original_status, (expected_left_filename,
                           expected_right_filename) in (('M',
                                                         ('a/testfile',
                                                          'b/testfile')),
                                                        ('dummy_status',
                                                         ('a/testfile',
                                                          'b/testfile')),
                                                        ('D',
                                                         ('/dev/null',
                                                          'b/testfile')),
                                                        ('A',
                                                         ('a/testfile',
                                                          '/dev/null')),
                                                        ('A +',
                                                         ('a/testfile',
                                                          '/dev/null'))):
         invert_git_patches = invert_patches.InvertGitPatches(
             patch_text=headers, filename='testfile')
         invert_git_patches._status = original_status
         (actual_left_filename, actual_right_filename) = (
             invert_git_patches._get_left_and_right_for_inverted_patch())
         self.assertEquals(expected_left_filename, actual_left_filename)
         self.assertEquals(expected_right_filename, actual_right_filename)
Beispiel #3
0
 def test_get_inverted_patch_for_binary_rename_and_modify_with_new_mode(
         self):
     invert_git_patches = invert_patches.InvertGitPatches(
         patch_text=self.RENAME_AND_MODIFY_BINARY_PATCH_TEXT_WITH_NEW_MODE,
         filename='img/file.png')
     self.assertEquals(self.DELETE_BINARY_PATCH_TEXT + '\n',
                       invert_git_patches.get_inverted_patch_text([], []))
 def test_get_patch_status(self):
     for patch_text, expected_status in (
             # ASCII file patches.
         (self.ADD_PATCH_TEXT, 'A'),
         (self.ADD_PATCH_TEXT_WITH_REAL_HASH_DEFAULT_MODE, 'A'),
         (self.DELETE_PATCH_TEXT, 'D'),
         (self.DELETE_PATCH_TEXT_WITH_REAL_HASH_DEFAULT_MODE, 'D'),
         (self.MODIFY_PATCH_TEXT_ADD_CHANGES, 'M'),
         (self.CHMOD_PATCH_TEXT_ADD_CHANGES, 'M'),
         (self.COPY_AND_MODIFY_PATCH_TEXT_WITH_NEW_MODE, 'A +'),
         (self.COPY_AND_MODIFY_PATCH_TEXT_WITH_EXISTING_MODE, 'A +'),
         (self.RENAME_AND_MODIFY_PATCH_TEXT_WITH_NEW_MODE, 'A +'),
         (self.RENAME_AND_MODIFY_PATCH_TEXT_WITH_EXISTING_MODE, 'A +'),
         (self.RENAME_WITH_NO_CHANGES_PATCH_TEXT, 'A +'),
         (self.COPY_WITH_NO_CHANGES_PATCH_TEXT, 'A +'),
             # Binary file patches.
         (self.ADD_BINARY_PATCH_TEXT, 'A'),
         (self.ADD_BINARY_PATCH_TEXT_WITH_REAL_HASH_DEFAULT_MODE, 'A'),
         (self.DELETE_BINARY_PATCH_TEXT, 'D'),
         (self.DELETE_BINARY_PATCH_TEXT_WITH_REAL_HASH_DEFAULT_MODE, 'D'),
         (self.MODIFY_BINARY_PATCH_TEXT_ADD_CHANGES, 'M'),
         (self.MODIFY_BINARY_PATCH_TEXT_REMOVE_CHANGES, 'M'),
         (self.COPY_AND_MODIFY_BINARY_PATCH_TEXT_WITH_EXISTING_MODE, 'A +'),
         (self.COPY_AND_MODIFY_BINARY_PATCH_TEXT_WITH_NEW_MODE, 'A +'),
         (self.RENAME_AND_MODIFY_BINARY_PATCH_TEXT_WITH_EXISTING_MODE,
          'A +'),
         (self.RENAME_AND_MODIFY_BINARY_PATCH_TEXT_WITH_NEW_MODE, 'A +'),
         (self.RENAME_WITH_NO_CHANGES_BINARY_PATCH_TEXT, 'A +'),
         (self.COPY_WITH_NO_CHANGES_BINARY_PATCH_TEXT, 'A +')):
         invert_git_patches = invert_patches.InvertGitPatches(
             patch_text, 'dummy_filename')
         self.assertEquals(expected_status, invert_git_patches.status)
Beispiel #5
0
 def test_get_inverted_patch_for_binary_copy_and_modify_with_existing_mode(
         self):
     invert_git_patches = invert_patches.InvertGitPatches(
         patch_text=self.
         COPY_AND_MODIFY_BINARY_PATCH_TEXT_WITH_EXISTING_MODE,
         filename='img/file.png')
     self.assertEquals(self.DELETE_BINARY_PATCH_TEXT + '\n',
                       invert_git_patches.get_inverted_patch_text([], []))
Beispiel #6
0
 def test_get_inverted_patch_for_svn_failure(self):
     try:
         _ = invert_patches.InvertGitPatches(patch_text=self.SVN_PATCH_TEXT,
                                             filename='file100')
         self.fail('Expected failure due to unsupported SVN patch.')
     except AssertionError, e:
         # Expected.
         self.assertEquals('Not a Git patch', e.message)
Beispiel #7
0
    def test_get_inverted_patch_for_chmod(self):
        lines = ['test\n', '\n', '\n', '\n']
        patched_lines = ['test\n', '\n', '\n', '\n']
        invert_git_patches = invert_patches.InvertGitPatches(
            patch_text=self.CHMOD_PATCH_TEXT_ADD_CHANGES, filename='file100')

        self.assertEquals(
            self.CHMOD_PATCH_TEXT_REMOVE_CHANGES,
            invert_git_patches.get_inverted_patch_text(lines, patched_lines))
Beispiel #8
0
    def test_get_inverted_patch_for_delete(self):
        lines = []
        patched_lines = ['test\n', '\n', '\n']
        invert_git_patches = invert_patches.InvertGitPatches(
            patch_text=self.DELETE_PATCH_TEXT, filename='file100')

        self.assertEquals(
            self.ADD_PATCH_TEXT,
            invert_git_patches.get_inverted_patch_text(lines, patched_lines))
Beispiel #9
0
    def test_get_inverted_patch_for_rename_and_modify_with_existing_mode(self):
        lines = ['test\n', '\n', '\n']
        patched_lines = []
        invert_git_patches = invert_patches.InvertGitPatches(
            patch_text=self.RENAME_AND_MODIFY_PATCH_TEXT_WITH_EXISTING_MODE,
            filename='file100')

        self.assertEquals(
            self.DELETE_PATCH_TEXT,
            invert_git_patches.get_inverted_patch_text(lines, patched_lines))
Beispiel #10
0
    def test_get_inverted_patch_for_copy_and_modify_with_new_mode(self):
        lines = ['test\n', '\n', '\n']
        patched_lines = []
        invert_git_patches = invert_patches.InvertGitPatches(
            patch_text=self.COPY_AND_MODIFY_PATCH_TEXT_WITH_NEW_MODE,
            filename='file100')

        self.assertEquals(
            self.DELETE_PATCH_TEXT,
            invert_git_patches.get_inverted_patch_text(lines, patched_lines))
Beispiel #11
0
    def test_get_inverted_patch_for_modify_with_nonewline(self):
        lines = ['test']
        patched_lines = ['test1']
        invert_git_patches = invert_patches.InvertGitPatches(
            patch_text=self.MODIFY_PATCH_TEXT_ADD_CHANGES_NONEWLINE,
            filename='file100')

        self.assertEquals(
            self.MODIFY_PATCH_TEXT_MODIFY_CHANGES_NONEWLINE,
            invert_git_patches.get_inverted_patch_text(lines, patched_lines))
Beispiel #12
0
 def test_inverted_patch_status(self):
     invert_git_patches = invert_patches.InvertGitPatches(
         self.ADD_PATCH_TEXT, 'dummy_filename')
     for original_status, expected_inverted_status in (('M', 'M'),
                                                       ('dummy_status',
                                                        'M'), ('D', 'A'),
                                                       ('A', 'D'), ('A +',
                                                                    'D')):
         invert_git_patches._status = original_status
         self.assertEquals(expected_inverted_status,
                           invert_git_patches.inverted_patch_status)
    def test_get_inverted_patch_for_binary_rename_with_no_changes(self):
        file_data = 'test\n\n\n'
        invert_git_patches = invert_patches.InvertGitPatches(
            patch_text=self.RENAME_WITH_NO_CHANGES_BINARY_PATCH_TEXT,
            filename='img/file.png')

        self.assertEquals(invert_patches.DELETED_STATUS,
                          invert_git_patches.inverted_patch_status)
        self.assertEquals(
            self.DELETE_BINARY_PATCH_TEXT_WITH_REAL_HASH_DEFAULT_MODE,
            invert_git_patches.get_inverted_patch_text([], [], file_data,
                                                       True))
    def test_get_inverted_patch_for_revert_copy_with_no_changes(self):
        lines = []
        patched_lines = ['test\n', '\n', '\n']
        invert_git_patches = invert_patches.InvertGitPatches(
            patch_text=self.DELETE_PATCH_TEXT_WITH_REAL_HASH_DEFAULT_MODE,
            filename='file100')

        self.assertEquals(invert_patches.ADDED_STATUS,
                          invert_git_patches.inverted_patch_status)
        self.assertEquals(
            self.ADD_PATCH_TEXT_WITH_REAL_HASH_DEFAULT_MODE,
            invert_git_patches.get_inverted_patch_text(lines, patched_lines,
                                                       ''.join(lines), False))
Beispiel #15
0
 def test_get_inverted_patch_for_binary_delete(self):
     invert_git_patches = invert_patches.InvertGitPatches(
         patch_text=self.DELETE_BINARY_PATCH_TEXT, filename='img/file.png')
     self.assertEquals(self.ADD_BINARY_PATCH_TEXT,
                       invert_git_patches.get_inverted_patch_text([], []))