Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(252)

Unified Diff: tests/patch_test.py

Issue 7828017: Improve is_delete detection. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: rebase against HEAD Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « patch.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/patch_test.py
diff --git a/tests/patch_test.py b/tests/patch_test.py
index 034915754eb5bf33b37b4ba88c94ff8fd0d2464e..516fd06368aec09c39b00e0fd2a27231dcdff092 100755
--- a/tests/patch_test.py
+++ b/tests/patch_test.py
@@ -133,68 +133,76 @@ NEW = (
'+bar\n')
+DELETE = (
+ '--- tools/clang_check/README.chromium\n'
+ '+++ /dev/null\n'
+ '@@ -1,1 +0,0 @@\n'
+ '-bar\n')
+
+
class PatchTest(unittest.TestCase):
def testFilePatchDelete(self):
- c = patch.FilePatchDelete('foo', False)
- self.assertEquals(c.filename, 'foo')
- self.assertEquals(c.is_binary, False)
- self.assertEquals(c.is_delete, True)
- self.assertEquals(c.is_new, False)
+ 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)
try:
- c.get()
+ p.get()
self.fail()
except NotImplementedError:
pass
- c = patch.FilePatchDelete('foo', True)
- self.assertEquals(c.filename, 'foo')
- self.assertEquals(c.is_binary, True)
- self.assertEquals(c.is_delete, True)
- self.assertEquals(c.is_new, False)
+ 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)
try:
- c.get()
+ p.get()
self.fail()
except NotImplementedError:
pass
def testFilePatchBinary(self):
- c = patch.FilePatchBinary('foo', 'data', [], is_new=False)
- self.assertEquals(c.filename, 'foo')
- self.assertEquals(c.is_binary, True)
- self.assertEquals(c.is_delete, False)
- self.assertEquals(c.is_new, False)
- self.assertEquals(c.get(), 'data')
+ 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')
def testFilePatchBinaryNew(self):
- c = patch.FilePatchBinary('foo', 'data', [], is_new=True)
- self.assertEquals(c.filename, 'foo')
- self.assertEquals(c.is_binary, True)
- self.assertEquals(c.is_delete, False)
- self.assertEquals(c.is_new, True)
- self.assertEquals(c.get(), 'data')
+ 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')
def testFilePatchDiff(self):
- c = patch.FilePatchDiff('chrome/file.cc', SVN_PATCH, [])
- self.assertEquals(c.filename, 'chrome/file.cc')
- self.assertEquals(c.is_binary, False)
- self.assertEquals(c.is_delete, False)
- self.assertEquals(c.is_git_diff, False)
- self.assertEquals(c.is_new, False)
- self.assertEquals(c.patchlevel, 0)
- self.assertEquals(c.get(), SVN_PATCH)
+ 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)
def testFilePatchDiffHeaderMode(self):
diff = (
'diff --git a/git_cl/git-cl b/git_cl/git-cl\n'
'old mode 100644\n'
'new mode 100755\n')
- c = patch.FilePatchDiff('git_cl/git-cl', diff, [])
- self.assertEquals(c.filename, 'git_cl/git-cl')
- self.assertEquals(c.is_binary, False)
- self.assertEquals(c.is_delete, False)
- self.assertEquals(c.is_git_diff, True)
- self.assertEquals(c.is_new, False)
- self.assertEquals(c.patchlevel, 1)
- self.assertEquals(c.get(), diff)
+ 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)
def testFilePatchDiffHeaderModeIndex(self):
diff = (
@@ -202,36 +210,36 @@ class PatchTest(unittest.TestCase):
'diff --git a/git_cl/git-cl b/git_cl/git-cl\n'
'old mode 100644\n'
'new mode 100755\n')
- c = patch.FilePatchDiff('git_cl/git-cl', diff, [])
- self.assertEquals(c.filename, 'git_cl/git-cl')
- self.assertEquals(c.is_binary, False)
- self.assertEquals(c.is_delete, False)
- self.assertEquals(c.is_git_diff, True)
- self.assertEquals(c.is_new, False)
- self.assertEquals(c.patchlevel, 1)
- self.assertEquals(c.get(), diff)
+ 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)
def testFilePatchDiffSvnNew(self):
# The code path is different for git and svn.
- c = patch.FilePatchDiff('foo', NEW, [])
- self.assertEquals(c.filename, 'foo')
- self.assertEquals(c.is_binary, False)
- self.assertEquals(c.is_delete, False)
- self.assertEquals(c.is_git_diff, False)
- self.assertEquals(c.is_new, True)
- self.assertEquals(c.patchlevel, 0)
- self.assertEquals(c.get(), NEW)
+ 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)
def testFilePatchDiffGitNew(self):
# The code path is different for git and svn.
- c = patch.FilePatchDiff('foo', GIT_NEW, [])
- self.assertEquals(c.filename, 'foo')
- self.assertEquals(c.is_binary, False)
- self.assertEquals(c.is_delete, False)
- self.assertEquals(c.is_git_diff, True)
- self.assertEquals(c.is_new, True)
- self.assertEquals(c.patchlevel, 1)
- self.assertEquals(c.get(), GIT_NEW)
+ 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)
def testFilePatchDiffBad(self):
try:
@@ -444,16 +452,62 @@ class PatchTest(unittest.TestCase):
self.assertEquals(expected, patches.filenames)
self.assertEquals(SVN_PATCH, patches.patches[0].get())
- def testGitPatches(self):
- # Shouldn't throw.
- patch.FilePatchDiff('tools/clang_check/README.chromium', GIT_DELETE, [])
- patch.FilePatchDiff('tools/run_local_server.sh', GIT_RENAME, [])
- patch.FilePatchDiff(
+ 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)
+
+ 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)
+
+ 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)
+
+ def testGitRenamePartial(self):
+ p = patch.FilePatchDiff(
'chrome/browser/chromeos/views/webui_menu_widget.h',
GIT_RENAME_PARTIAL, [])
- patch.FilePatchDiff('pp', GIT_COPY, [])
- patch.FilePatchDiff('foo', GIT_NEW, [])
- self.assertTrue(True)
+ 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)
+
+ 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)
def testOnlyHeader(self):
p = patch.FilePatchDiff('file_a', '--- file_a\n+++ file_a\n', [])
@@ -481,9 +535,15 @@ class PatchTest(unittest.TestCase):
def testRenameOnlyHeader(self):
p = patch.FilePatchDiff('file_b', '--- file_a\n+++ file_b\n', [])
- self.assertTrue(p)
-
- def testGitCopy(self):
+ self.assertEquals(p.filename, 'file_b')
+ 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(), '--- file_a\n+++ file_b\n')
+ self.assertEquals([], p.svn_properties)
+
+ def testGitCopyPartial(self):
diff = (
'diff --git a/wtf b/wtf2\n'
'similarity index 98%\n'
@@ -499,7 +559,13 @@ class PatchTest(unittest.TestCase):
' # blah blah blah as\n'
' # found in the LICENSE file.\n')
p = patch.FilePatchDiff('wtf2', diff, [])
- self.assertTrue(p)
+ 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)
def testGitExe(self):
diff = (
@@ -509,9 +575,15 @@ class PatchTest(unittest.TestCase):
'+++ b/natsort_test.py\n'
'@@ -0,0 +1,1 @@\n'
'+#!/usr/bin/env python\n')
- self.assertEquals(
- [('svn:executable', '*')],
- patch.FilePatchDiff('natsort_test.py', diff, []).svn_properties)
+ 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)
+
+ def testGitExe2(self):
diff = (
'diff --git a/natsort_test.py b/natsort_test.py\n'
'new file mode 100644\n'
@@ -519,8 +591,13 @@ class PatchTest(unittest.TestCase):
'+++ b/natsort_test.py\n'
'@@ -0,0 +1,1 @@\n'
'+#!/usr/bin/env python\n')
- self.assertEquals(
- [], patch.FilePatchDiff('natsort_test.py', diff, []).svn_properties)
+ 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)
if __name__ == '__main__':
« no previous file with comments | « patch.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698