| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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() |
| OLD | NEW |