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

Side by Side Diff: tests/patch_test.py

Issue 10962038: Fix applying git diff with new file mode 644 on a svn checkout. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « testing_support/patches_data.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # coding: utf-8 2 # coding: utf-8
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """Unit tests for patch.py.""" 7 """Unit tests for patch.py."""
8 8
9 import logging 9 import logging
10 import os 10 import os
(...skipping 14 matching lines...) Expand all
25 filename, 25 filename,
26 diff, 26 diff,
27 source_filename=None, 27 source_filename=None,
28 is_binary=False, 28 is_binary=False,
29 is_delete=False, 29 is_delete=False,
30 is_git_diff=False, 30 is_git_diff=False,
31 is_new=False, 31 is_new=False,
32 patchlevel=0, 32 patchlevel=0,
33 svn_properties=None, 33 svn_properties=None,
34 nb_hunks=None): 34 nb_hunks=None):
35 svn_properties = svn_properties or []
36 self.assertEquals(p.filename, filename) 35 self.assertEquals(p.filename, filename)
37 self.assertEquals(p.source_filename, source_filename) 36 self.assertEquals(p.source_filename, source_filename)
38 self.assertEquals(p.is_binary, is_binary) 37 self.assertEquals(p.is_binary, is_binary)
39 self.assertEquals(p.is_delete, is_delete) 38 self.assertEquals(p.is_delete, is_delete)
40 if hasattr(p, 'is_git_diff'): 39 if hasattr(p, 'is_git_diff'):
41 self.assertEquals(p.is_git_diff, is_git_diff) 40 self.assertEquals(p.is_git_diff, is_git_diff)
42 self.assertEquals(p.is_new, is_new) 41 self.assertEquals(p.is_new, is_new)
43 if hasattr(p, 'patchlevel'): 42 if hasattr(p, 'patchlevel'):
44 self.assertEquals(p.patchlevel, patchlevel) 43 self.assertEquals(p.patchlevel, patchlevel)
45 if diff: 44 if diff:
46 if is_binary: 45 if is_binary:
47 self.assertEquals(p.get(), diff) 46 self.assertEquals(p.get(), diff)
48 else: 47 else:
49 self.assertEquals(p.get(True), diff) 48 self.assertEquals(p.get(True), diff)
50 if hasattr(p, 'hunks'): 49 if hasattr(p, 'hunks'):
51 self.assertEquals(len(p.hunks), nb_hunks) 50 self.assertEquals(len(p.hunks), nb_hunks)
52 else: 51 else:
53 self.assertEquals(None, nb_hunks) 52 self.assertEquals(None, nb_hunks)
53 if hasattr(p, 'svn_properties'):
54 self.assertEquals(p.svn_properties, svn_properties or [])
54 55
55 def testFilePatchDelete(self): 56 def testFilePatchDelete(self):
56 p = patch.FilePatchDelete('foo', False) 57 p = patch.FilePatchDelete('foo', False)
57 self._check_patch(p, 'foo', None, is_delete=True) 58 self._check_patch(p, 'foo', None, is_delete=True)
58 59
59 def testFilePatchDeleteBin(self): 60 def testFilePatchDeleteBin(self):
60 p = patch.FilePatchDelete('foo', True) 61 p = patch.FilePatchDelete('foo', True)
61 self._check_patch(p, 'foo', None, is_delete=True, is_binary=True) 62 self._check_patch(p, 'foo', None, is_delete=True, is_binary=True)
62 63
63 def testFilePatchBinary(self): 64 def testFilePatchBinary(self):
(...skipping 18 matching lines...) Expand all
82 self._check_patch( 83 self._check_patch(
83 p, 'git_cl/git-cl', GIT.MODE_EXE, is_git_diff=True, patchlevel=1, 84 p, 'git_cl/git-cl', GIT.MODE_EXE, is_git_diff=True, patchlevel=1,
84 svn_properties=[('svn:executable', '*')], nb_hunks=0) 85 svn_properties=[('svn:executable', '*')], nb_hunks=0)
85 86
86 def testFilePatchDiffHeaderModeIndex(self): 87 def testFilePatchDiffHeaderModeIndex(self):
87 p = patch.FilePatchDiff('git_cl/git-cl', GIT.MODE_EXE_JUNK, []) 88 p = patch.FilePatchDiff('git_cl/git-cl', GIT.MODE_EXE_JUNK, [])
88 self._check_patch( 89 self._check_patch(
89 p, 'git_cl/git-cl', GIT.MODE_EXE_JUNK, is_git_diff=True, patchlevel=1, 90 p, 'git_cl/git-cl', GIT.MODE_EXE_JUNK, is_git_diff=True, patchlevel=1,
90 svn_properties=[('svn:executable', '*')], nb_hunks=0) 91 svn_properties=[('svn:executable', '*')], nb_hunks=0)
91 92
93 def testFilePatchDiffHeaderNotExecutable(self):
94 p = patch.FilePatchDiff(
95 'build/android/ant/create.js', GIT.NEW_NOT_EXECUTABLE, [])
96 self._check_patch(
97 p, 'build/android/ant/create.js', GIT.NEW_NOT_EXECUTABLE,
98 is_git_diff=True, patchlevel=1, is_new=True,
99 nb_hunks=1)
100
92 def testFilePatchDiffSvnNew(self): 101 def testFilePatchDiffSvnNew(self):
93 # The code path is different for git and svn. 102 # The code path is different for git and svn.
94 p = patch.FilePatchDiff('foo', RAW.NEW, []) 103 p = patch.FilePatchDiff('foo', RAW.NEW, [])
95 self._check_patch(p, 'foo', RAW.NEW, is_new=True, nb_hunks=1) 104 self._check_patch(p, 'foo', RAW.NEW, is_new=True, nb_hunks=1)
96 105
97 def testFilePatchDiffGitNew(self): 106 def testFilePatchDiffGitNew(self):
98 # The code path is different for git and svn. 107 # The code path is different for git and svn.
99 p = patch.FilePatchDiff('foo', GIT.NEW, []) 108 p = patch.FilePatchDiff('foo', GIT.NEW, [])
100 self._check_patch( 109 self._check_patch(
101 p, 'foo', GIT.NEW, is_new=True, is_git_diff=True, patchlevel=1, 110 p, 'foo', GIT.NEW, is_new=True, is_git_diff=True, patchlevel=1,
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 self.fail() 547 self.fail()
539 except patch.UnsupportedPatchFormat: 548 except patch.UnsupportedPatchFormat:
540 pass 549 pass
541 550
542 551
543 if __name__ == '__main__': 552 if __name__ == '__main__':
544 logging.basicConfig(level= 553 logging.basicConfig(level=
545 [logging.WARNING, logging.INFO, logging.DEBUG][ 554 [logging.WARNING, logging.INFO, logging.DEBUG][
546 min(2, sys.argv.count('-v'))]) 555 min(2, sys.argv.count('-v'))])
547 unittest.main() 556 unittest.main()
OLDNEW
« no previous file with comments | « testing_support/patches_data.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698