OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 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 git_cl.py.""" | 6 """Unit tests for git_cl.py.""" |
7 | 7 |
8 import os | 8 import os |
9 import StringIO | 9 import StringIO |
10 import stat | 10 import stat |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 self.fail(msg) | 107 self.fail(msg) |
108 self._calls_done += 1 | 108 self._calls_done += 1 |
109 return result | 109 return result |
110 | 110 |
111 @classmethod | 111 @classmethod |
112 def _upload_calls(cls, similarity, find_copies): | 112 def _upload_calls(cls, similarity, find_copies): |
113 return (cls._git_base_calls(similarity, find_copies) + | 113 return (cls._git_base_calls(similarity, find_copies) + |
114 cls._git_upload_calls()) | 114 cls._git_upload_calls()) |
115 | 115 |
116 @classmethod | 116 @classmethod |
| 117 def _upload_no_rev_calls(cls, similarity, find_copies): |
| 118 return (cls._git_base_calls(similarity, find_copies) + |
| 119 cls._git_upload_no_rev_calls()) |
| 120 |
| 121 @classmethod |
117 def _git_base_calls(cls, similarity, find_copies): | 122 def _git_base_calls(cls, similarity, find_copies): |
118 if similarity is None: | 123 if similarity is None: |
119 similarity = '50' | 124 similarity = '50' |
120 similarity_call = ((['git', '--no-pager', 'config', '--int', '--get', | 125 similarity_call = ((['git', '--no-pager', 'config', '--int', '--get', |
121 'branch.master.git-cl-similarity'],), '') | 126 'branch.master.git-cl-similarity'],), '') |
122 else: | 127 else: |
123 similarity_call = ((['git', '--no-pager', 'config', '--int', | 128 similarity_call = ((['git', '--no-pager', 'config', '--int', |
124 'branch.master.git-cl-similarity', similarity],), '') | 129 'branch.master.git-cl-similarity', similarity],), '') |
125 | 130 |
126 if find_copies is None: | 131 if find_copies is None: |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 'foo'), | 173 'foo'), |
169 ((['git', '--no-pager', 'config', 'user.email'],), 'me@example.com'), | 174 ((['git', '--no-pager', 'config', 'user.email'],), 'me@example.com'), |
170 stat_call, | 175 stat_call, |
171 ((['git', '--no-pager', 'config', 'gerrit.host'],), ''), | 176 ((['git', '--no-pager', 'config', 'gerrit.host'],), ''), |
172 ((['git', '--no-pager', 'log', '--pretty=format:%s\n\n%b', | 177 ((['git', '--no-pager', 'log', '--pretty=format:%s\n\n%b', |
173 'fake_ancestor_sha..HEAD'],), | 178 'fake_ancestor_sha..HEAD'],), |
174 'desc\n'), | 179 'desc\n'), |
175 ] | 180 ] |
176 | 181 |
177 @classmethod | 182 @classmethod |
| 183 def _git_upload_no_rev_calls(cls): |
| 184 return [ |
| 185 ((['git', '--no-pager', 'config', 'core.editor'],), ''), |
| 186 ] |
| 187 |
| 188 @classmethod |
178 def _git_upload_calls(cls): | 189 def _git_upload_calls(cls): |
179 return [ | 190 return [ |
| 191 ((['git', '--no-pager', 'config', 'core.editor'],), ''), |
180 ((['git', '--no-pager', 'config', 'rietveld.cc'],), ''), | 192 ((['git', '--no-pager', 'config', 'rietveld.cc'],), ''), |
181 ((['git', '--no-pager', 'config', 'branch.master.base-url'],), ''), | 193 ((['git', '--no-pager', 'config', 'branch.master.base-url'],), ''), |
182 ((['git', '--no-pager', | 194 ((['git', '--no-pager', |
183 'config', '--local', '--get-regexp', '^svn-remote\\.'],), | 195 'config', '--local', '--get-regexp', '^svn-remote\\.'],), |
184 (('', None), 0)), | 196 (('', None), 0)), |
185 ((['git', '--no-pager', 'rev-parse', '--show-cdup'],), ''), | 197 ((['git', '--no-pager', 'rev-parse', '--show-cdup'],), ''), |
186 ((['git', '--no-pager', 'svn', 'info'],), ''), | 198 ((['git', '--no-pager', 'svn', 'info'],), ''), |
187 ((['git', '--no-pager', | 199 ((['git', '--no-pager', |
188 'config', 'branch.master.rietveldissue', '1'],), ''), | 200 'config', 'branch.master.rietveldissue', '1'],), ''), |
189 ((['git', '--no-pager', 'config', 'branch.master.rietveldserver', | 201 ((['git', '--no-pager', 'config', 'branch.master.rietveldserver', |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 similarity = None | 363 similarity = None |
352 | 364 |
353 if '--find-copies' in upload_args: | 365 if '--find-copies' in upload_args: |
354 find_copies = True | 366 find_copies = True |
355 elif '--no-find-copies' in upload_args: | 367 elif '--no-find-copies' in upload_args: |
356 find_copies = False | 368 find_copies = False |
357 else: | 369 else: |
358 find_copies = None | 370 find_copies = None |
359 | 371 |
360 self.calls = self._upload_calls(similarity, find_copies) | 372 self.calls = self._upload_calls(similarity, find_copies) |
361 def RunEditor(desc, _): | 373 def RunEditor(desc, _, **kwargs): |
362 self.assertEquals( | 374 self.assertEquals( |
363 '# Enter a description of the change.\n' | 375 '# Enter a description of the change.\n' |
364 '# This will be displayed on the codereview site.\n' | 376 '# This will be displayed on the codereview site.\n' |
365 '# The first line will also be used as the subject of the review.\n' + | 377 '# The first line will also be used as the subject of the review.\n' + |
366 expected_description, | 378 expected_description, |
367 desc) | 379 desc) |
368 return returned_description | 380 return returned_description |
369 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) | 381 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) |
370 def check_upload(args): | 382 def check_upload(args): |
371 cmd_line = self._cmd_line(final_description, reviewers, similarity, | 383 cmd_line = self._cmd_line(final_description, reviewers, similarity, |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 | 455 |
444 def test_reviewer_send_mail_no_rev(self): | 456 def test_reviewer_send_mail_no_rev(self): |
445 # Fails without a reviewer. | 457 # Fails without a reviewer. |
446 class FileMock(object): | 458 class FileMock(object): |
447 buf = StringIO.StringIO() | 459 buf = StringIO.StringIO() |
448 def write(self, content): | 460 def write(self, content): |
449 self.buf.write(content) | 461 self.buf.write(content) |
450 | 462 |
451 mock = FileMock() | 463 mock = FileMock() |
452 try: | 464 try: |
453 self.calls = self._git_base_calls(None, None) | 465 self.calls = self._upload_no_rev_calls(None, None) |
454 def RunEditor(desc, _): | 466 def RunEditor(desc, _, **kwargs): |
455 return desc | 467 return desc |
456 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) | 468 self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor) |
457 self.mock(sys, 'stderr', mock) | 469 self.mock(sys, 'stderr', mock) |
458 git_cl.main(['upload', '--send-mail']) | 470 git_cl.main(['upload', '--send-mail']) |
459 self.fail() | 471 self.fail() |
460 except SystemExit: | 472 except SystemExit: |
461 self.assertEquals( | 473 self.assertEquals( |
462 'Must specify reviewers to send email.\n', mock.buf.getvalue()) | 474 'Must specify reviewers to send email.\n', mock.buf.getvalue()) |
463 | 475 |
464 def test_dcommit(self): | 476 def test_dcommit(self): |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 obj = git_cl.ChangeDescription(orig) | 685 obj = git_cl.ChangeDescription(orig) |
674 obj.update_reviewers(reviewers) | 686 obj.update_reviewers(reviewers) |
675 actual.append(obj.description) | 687 actual.append(obj.description) |
676 self.assertEqual(expected, actual) | 688 self.assertEqual(expected, actual) |
677 | 689 |
678 | 690 |
679 if __name__ == '__main__': | 691 if __name__ == '__main__': |
680 git_cl.logging.basicConfig( | 692 git_cl.logging.basicConfig( |
681 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR) | 693 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR) |
682 unittest.main() | 694 unittest.main() |
OLD | NEW |