Index: tests/patch_test.py |
diff --git a/tests/patch_test.py b/tests/patch_test.py |
index 516fd06368aec09c39b00e0fd2a27231dcdff092..d53e893451a0d415b7553051bcdd9a8f4502f87d 100755 |
--- a/tests/patch_test.py |
+++ b/tests/patch_test.py |
@@ -141,22 +141,42 @@ DELETE = ( |
class PatchTest(unittest.TestCase): |
+ def _check_patch(self, |
+ p, |
+ filename, |
+ diff, |
+ is_binary=False, |
+ is_delete=False, |
+ is_git_diff=False, |
+ is_new=False, |
+ patchlevel=0, |
+ svn_properties=None): |
+ svn_properties = svn_properties or [] |
+ self.assertEquals(p.filename, filename) |
+ self.assertEquals(p.is_binary, is_binary) |
+ self.assertEquals(p.is_delete, is_delete) |
+ if hasattr(p, 'is_git_diff'): |
+ self.assertEquals(p.is_git_diff, is_git_diff) |
+ self.assertEquals(p.is_new, is_new) |
+ if hasattr(p, 'patchlevel'): |
+ self.assertEquals(p.patchlevel, patchlevel) |
+ if diff: |
+ self.assertEquals(p.get(), diff) |
+ if hasattr(p, 'svn_properties'): |
+ self.assertEquals(p.svn_properties, svn_properties) |
+ |
def testFilePatchDelete(self): |
p = patch.FilePatchDelete('foo', False) |
- self.assertEquals(p.filename, 'foo') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, True) |
- self.assertEquals(p.is_new, False) |
+ self._check_patch(p, 'foo', None, is_delete=True) |
try: |
p.get() |
self.fail() |
except NotImplementedError: |
pass |
+ |
+ def testFilePatchDeleteBin(self): |
p = patch.FilePatchDelete('foo', True) |
- self.assertEquals(p.filename, 'foo') |
- self.assertEquals(p.is_binary, True) |
- self.assertEquals(p.is_delete, True) |
- self.assertEquals(p.is_new, False) |
+ self._check_patch(p, 'foo', None, is_delete=True, is_binary=True) |
try: |
p.get() |
self.fail() |
@@ -165,29 +185,15 @@ class PatchTest(unittest.TestCase): |
def testFilePatchBinary(self): |
p = patch.FilePatchBinary('foo', 'data', [], is_new=False) |
- self.assertEquals(p.filename, 'foo') |
- self.assertEquals(p.is_binary, True) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.get(), 'data') |
+ self._check_patch(p, 'foo', 'data', is_binary=True) |
def testFilePatchBinaryNew(self): |
p = patch.FilePatchBinary('foo', 'data', [], is_new=True) |
- self.assertEquals(p.filename, 'foo') |
- self.assertEquals(p.is_binary, True) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_new, True) |
- self.assertEquals(p.get(), 'data') |
+ self._check_patch(p, 'foo', 'data', is_binary=True, is_new=True) |
def testFilePatchDiff(self): |
p = patch.FilePatchDiff('chrome/file.cc', SVN_PATCH, []) |
- self.assertEquals(p.filename, 'chrome/file.cc') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_git_diff, False) |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.patchlevel, 0) |
- self.assertEquals(p.get(), SVN_PATCH) |
+ self._check_patch(p, 'chrome/file.cc', SVN_PATCH) |
def testFilePatchDiffHeaderMode(self): |
diff = ( |
@@ -195,14 +201,9 @@ class PatchTest(unittest.TestCase): |
'old mode 100644\n' |
'new mode 100755\n') |
p = patch.FilePatchDiff('git_cl/git-cl', diff, []) |
- self.assertEquals(p.filename, 'git_cl/git-cl') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_git_diff, True) |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.patchlevel, 1) |
- self.assertEquals(p.get(), diff) |
- self.assertEquals([('svn:executable', '*')], p.svn_properties) |
+ self._check_patch( |
+ p, 'git_cl/git-cl', diff, is_git_diff=True, patchlevel=1, |
+ svn_properties=[('svn:executable', '*')]) |
def testFilePatchDiffHeaderModeIndex(self): |
diff = ( |
@@ -211,35 +212,20 @@ class PatchTest(unittest.TestCase): |
'old mode 100644\n' |
'new mode 100755\n') |
p = patch.FilePatchDiff('git_cl/git-cl', diff, []) |
- self.assertEquals(p.filename, 'git_cl/git-cl') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_git_diff, True) |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.patchlevel, 1) |
- self.assertEquals(p.get(), diff) |
+ self._check_patch( |
+ p, 'git_cl/git-cl', diff, is_git_diff=True, patchlevel=1, |
+ svn_properties=[('svn:executable', '*')]) |
def testFilePatchDiffSvnNew(self): |
# The code path is different for git and svn. |
p = patch.FilePatchDiff('foo', NEW, []) |
- self.assertEquals(p.filename, 'foo') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_git_diff, False) |
- self.assertEquals(p.is_new, True) |
- self.assertEquals(p.patchlevel, 0) |
- self.assertEquals(p.get(), NEW) |
+ self._check_patch(p, 'foo', NEW, is_new=True) |
def testFilePatchDiffGitNew(self): |
# The code path is different for git and svn. |
p = patch.FilePatchDiff('foo', GIT_NEW, []) |
- self.assertEquals(p.filename, 'foo') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_git_diff, True) |
- self.assertEquals(p.is_new, True) |
- self.assertEquals(p.patchlevel, 1) |
- self.assertEquals(p.get(), GIT_NEW) |
+ self._check_patch( |
+ p, 'foo', GIT_NEW, is_new=True, is_git_diff=True, patchlevel=1) |
def testFilePatchDiffBad(self): |
try: |
@@ -454,69 +440,41 @@ class PatchTest(unittest.TestCase): |
def testDelete(self): |
p = patch.FilePatchDiff('tools/clang_check/README.chromium', DELETE, []) |
- self.assertEquals(p.filename, 'tools/clang_check/README.chromium') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, True) |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.get(), DELETE) |
- self.assertEquals([], p.svn_properties) |
+ self._check_patch( |
+ p, 'tools/clang_check/README.chromium', DELETE, is_delete=True) |
def testGitDelete(self): |
p = patch.FilePatchDiff('tools/clang_check/README.chromium', GIT_DELETE, []) |
- self.assertEquals(p.filename, 'tools/clang_check/README.chromium') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, True) |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.get(), GIT_DELETE) |
- self.assertEquals([], p.svn_properties) |
+ self._check_patch( |
+ p, 'tools/clang_check/README.chromium', GIT_DELETE, is_delete=True, |
+ is_git_diff=True, patchlevel=1) |
def testGitRename(self): |
p = patch.FilePatchDiff('tools/run_local_server.sh', GIT_RENAME, []) |
- self.assertEquals(p.filename, 'tools/run_local_server.sh') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.get(), GIT_RENAME) |
- self.assertEquals([], p.svn_properties) |
+ self._check_patch(p, 'tools/run_local_server.sh', GIT_RENAME, |
+ is_git_diff=True, patchlevel=1) |
def testGitRenamePartial(self): |
p = patch.FilePatchDiff( |
'chrome/browser/chromeos/views/webui_menu_widget.h', |
GIT_RENAME_PARTIAL, []) |
- self.assertEquals( |
- p.filename, 'chrome/browser/chromeos/views/webui_menu_widget.h') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.get(), GIT_RENAME_PARTIAL) |
- self.assertEquals([], p.svn_properties) |
+ self._check_patch( |
+ p, 'chrome/browser/chromeos/views/webui_menu_widget.h', |
+ GIT_RENAME_PARTIAL, is_git_diff=True, patchlevel=1) |
def testGitCopy(self): |
p = patch.FilePatchDiff('pp', GIT_COPY, []) |
- self.assertEquals(p.filename, 'pp') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.get(), GIT_COPY) |
- self.assertEquals([], p.svn_properties) |
- |
- def testGitNew(self): |
- p = patch.FilePatchDiff('foo', GIT_NEW, []) |
- self.assertEquals(p.filename, 'foo') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_new, True) |
- self.assertEquals(p.get(), GIT_NEW) |
- self.assertEquals([], p.svn_properties) |
+ self._check_patch(p, 'pp', GIT_COPY, is_git_diff=True, patchlevel=1) |
def testOnlyHeader(self): |
- p = patch.FilePatchDiff('file_a', '--- file_a\n+++ file_a\n', []) |
- self.assertTrue(p) |
+ diff = '--- file_a\n+++ file_a\n' |
+ p = patch.FilePatchDiff('file_a', diff, []) |
+ self._check_patch(p, 'file_a', diff) |
def testSmallest(self): |
- p = patch.FilePatchDiff( |
- 'file_a', '--- file_a\n+++ file_a\n@@ -0,0 +1 @@\n+foo\n', []) |
- self.assertTrue(p) |
+ diff = '--- file_a\n+++ file_a\n@@ -0,0 +1 @@\n+foo\n' |
+ p = patch.FilePatchDiff('file_a', diff, []) |
+ self._check_patch(p, 'file_a', diff) |
def testInverted(self): |
try: |
@@ -534,14 +492,10 @@ class PatchTest(unittest.TestCase): |
pass |
def testRenameOnlyHeader(self): |
- p = patch.FilePatchDiff('file_b', '--- file_a\n+++ file_b\n', []) |
- self.assertEquals(p.filename, 'file_b') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
+ diff = '--- file_a\n+++ file_b\n' |
+ p = patch.FilePatchDiff('file_b', diff, []) |
# Should it be marked as new? |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.get(), '--- file_a\n+++ file_b\n') |
- self.assertEquals([], p.svn_properties) |
+ self._check_patch(p, 'file_b', diff) |
def testGitCopyPartial(self): |
diff = ( |
@@ -559,13 +513,8 @@ class PatchTest(unittest.TestCase): |
' # blah blah blah as\n' |
' # found in the LICENSE file.\n') |
p = patch.FilePatchDiff('wtf2', diff, []) |
- self.assertEquals(p.filename, 'wtf2') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
# Should it be marked as new? |
- self.assertEquals(p.is_new, False) |
- self.assertEquals(p.get(), diff) |
- self.assertEquals([], p.svn_properties) |
+ self._check_patch(p, 'wtf2', diff, is_git_diff=True, patchlevel=1) |
def testGitExe(self): |
diff = ( |
@@ -576,12 +525,9 @@ class PatchTest(unittest.TestCase): |
'@@ -0,0 +1,1 @@\n' |
'+#!/usr/bin/env python\n') |
p = patch.FilePatchDiff('natsort_test.py', diff, []) |
- self.assertEquals(p.filename, 'natsort_test.py') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_new, True) |
- self.assertEquals(p.get(), diff) |
- self.assertEquals([('svn:executable', '*')], p.svn_properties) |
+ self._check_patch( |
+ p, 'natsort_test.py', diff, is_new=True, is_git_diff=True, patchlevel=1, |
+ svn_properties=[('svn:executable', '*')]) |
def testGitExe2(self): |
diff = ( |
@@ -592,12 +538,8 @@ class PatchTest(unittest.TestCase): |
'@@ -0,0 +1,1 @@\n' |
'+#!/usr/bin/env python\n') |
p = patch.FilePatchDiff('natsort_test.py', diff, []) |
- self.assertEquals(p.filename, 'natsort_test.py') |
- self.assertEquals(p.is_binary, False) |
- self.assertEquals(p.is_delete, False) |
- self.assertEquals(p.is_new, True) |
- self.assertEquals(p.get(), diff) |
- self.assertEquals([], p.svn_properties) |
+ self._check_patch( |
+ p, 'natsort_test.py', diff, is_new=True, is_git_diff=True, patchlevel=1) |
if __name__ == '__main__': |