| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Unit tests for patch.py.""" | 6 """Unit tests for patch.py.""" |
| 7 | 7 |
| 8 import logging | 8 import logging |
| 9 import os | 9 import os |
| 10 import sys | 10 import sys |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 self.assertEquals(RAW.MINIMAL_NEW, p.get()) | 106 self.assertEquals(RAW.MINIMAL_NEW, p.get()) |
| 107 | 107 |
| 108 def testValidSvnDelete(self): | 108 def testValidSvnDelete(self): |
| 109 p = patch.FilePatchDiff('chrome/file.cc', RAW.MINIMAL_DELETE, []) | 109 p = patch.FilePatchDiff('chrome/file.cc', RAW.MINIMAL_DELETE, []) |
| 110 self.assertEquals(RAW.MINIMAL_DELETE, p.diff_header) | 110 self.assertEquals(RAW.MINIMAL_DELETE, p.diff_header) |
| 111 self.assertEquals('', p.diff_hunks) | 111 self.assertEquals('', p.diff_hunks) |
| 112 self.assertEquals(RAW.MINIMAL_DELETE, p.get()) | 112 self.assertEquals(RAW.MINIMAL_DELETE, p.get()) |
| 113 | 113 |
| 114 def testRelPath(self): | 114 def testRelPath(self): |
| 115 patches = patch.PatchSet([ | 115 patches = patch.PatchSet([ |
| 116 patch.FilePatchDiff('pp', GIT.COPY, []), |
| 117 patch.FilePatchDiff( |
| 118 'chromeos\\views/webui_menu_widget.h', GIT.RENAME_PARTIAL, []), |
| 119 patch.FilePatchDiff('tools/run_local_server.sh', GIT.RENAME, []), |
| 120 patch.FilePatchBinary('bar', 'data', [], is_new=False), |
| 116 patch.FilePatchDiff('chrome/file.cc', RAW.PATCH, []), | 121 patch.FilePatchDiff('chrome/file.cc', RAW.PATCH, []), |
| 122 patch.FilePatchDiff('foo', GIT.NEW, []), |
| 123 patch.FilePatchDelete('other/place/foo', True), |
| 117 patch.FilePatchDiff( | 124 patch.FilePatchDiff( |
| 118 'tools\\clang_check/README.chromium', GIT.DELETE, []), | 125 'tools\\clang_check/README.chromium', GIT.DELETE, []), |
| 119 patch.FilePatchDiff('tools/run_local_server.sh', GIT.RENAME, []), | |
| 120 patch.FilePatchDiff( | |
| 121 'chromeos\\views/webui_menu_widget.h', GIT.RENAME_PARTIAL, []), | |
| 122 patch.FilePatchDiff('pp', GIT.COPY, []), | |
| 123 patch.FilePatchDiff('foo', GIT.NEW, []), | |
| 124 patch.FilePatchDelete('other/place/foo', True), | |
| 125 patch.FilePatchBinary('bar', 'data', [], is_new=False), | |
| 126 ]) | 126 ]) |
| 127 expected = [ | 127 expected = [ |
| 128 'chrome/file.cc', 'tools/clang_check/README.chromium', | 128 'pp', |
| 129 'chromeos/views/webui_menu_widget.h', |
| 129 'tools/run_local_server.sh', | 130 'tools/run_local_server.sh', |
| 130 'chromeos/views/webui_menu_widget.h', 'pp', 'foo', | 131 'bar', |
| 131 'other/place/foo', 'bar'] | 132 'chrome/file.cc', |
| 133 'foo', |
| 134 'other/place/foo', |
| 135 'tools/clang_check/README.chromium', |
| 136 ] |
| 132 self.assertEquals(expected, patches.filenames) | 137 self.assertEquals(expected, patches.filenames) |
| 133 orig_name = patches.patches[0].filename | 138 |
| 134 orig_source_name = patches.patches[0].source_filename or orig_name | 139 # Test patch #4. |
| 140 orig_name = patches.patches[4].filename |
| 141 orig_source_name = patches.patches[4].source_filename or orig_name |
| 135 patches.set_relpath(os.path.join('a', 'bb')) | 142 patches.set_relpath(os.path.join('a', 'bb')) |
| 136 expected = [os.path.join('a', 'bb', x) for x in expected] | 143 expected = [os.path.join('a', 'bb', x) for x in expected] |
| 137 self.assertEquals(expected, patches.filenames) | 144 self.assertEquals(expected, patches.filenames) |
| 138 # Make sure each header is updated accordingly. | 145 # Make sure each header is updated accordingly. |
| 139 header = [] | 146 header = [] |
| 140 new_name = os.path.join('a', 'bb', orig_name) | 147 new_name = os.path.join('a', 'bb', orig_name) |
| 141 new_source_name = os.path.join('a', 'bb', orig_source_name) | 148 new_source_name = os.path.join('a', 'bb', orig_source_name) |
| 142 for line in RAW.PATCH.splitlines(True): | 149 for line in RAW.PATCH.splitlines(True): |
| 143 if line.startswith('@@'): | 150 if line.startswith('@@'): |
| 144 break | 151 break |
| 145 if line[:3] == '---': | 152 if line[:3] == '---': |
| 146 line = line.replace(orig_source_name, new_source_name) | 153 line = line.replace(orig_source_name, new_source_name) |
| 147 if line[:3] == '+++': | 154 if line[:3] == '+++': |
| 148 line = line.replace(orig_name, new_name) | 155 line = line.replace(orig_name, new_name) |
| 149 header.append(line) | 156 header.append(line) |
| 150 header = ''.join(header) | 157 header = ''.join(header) |
| 151 self.assertEquals(header, patches.patches[0].diff_header) | 158 self.assertEquals(header, patches.patches[4].diff_header) |
| 152 | 159 |
| 153 def testRelPathEmpty(self): | 160 def testRelPathEmpty(self): |
| 154 patches = patch.PatchSet([ | 161 patches = patch.PatchSet([ |
| 155 patch.FilePatchDiff('chrome\\file.cc', RAW.PATCH, []), | 162 patch.FilePatchDiff('chrome\\file.cc', RAW.PATCH, []), |
| 156 patch.FilePatchDelete('other\\place\\foo', True), | 163 patch.FilePatchDelete('other\\place\\foo', True), |
| 157 ]) | 164 ]) |
| 158 patches.set_relpath('') | 165 patches.set_relpath('') |
| 159 self.assertEquals( | 166 self.assertEquals( |
| 160 ['chrome/file.cc', 'other/place/foo'], | 167 ['chrome/file.cc', 'other/place/foo'], |
| 161 [f.filename for f in patches]) | 168 [f.filename for f in patches]) |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 self.fail() | 401 self.fail() |
| 395 except patch.UnsupportedPatchFormat: | 402 except patch.UnsupportedPatchFormat: |
| 396 pass | 403 pass |
| 397 | 404 |
| 398 | 405 |
| 399 if __name__ == '__main__': | 406 if __name__ == '__main__': |
| 400 logging.basicConfig(level= | 407 logging.basicConfig(level= |
| 401 [logging.WARNING, logging.INFO, logging.DEBUG][ | 408 [logging.WARNING, logging.INFO, logging.DEBUG][ |
| 402 min(2, sys.argv.count('-v'))]) | 409 min(2, sys.argv.count('-v'))]) |
| 403 unittest.main() | 410 unittest.main() |
| OLD | NEW |