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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 self.mock(subprocess2, 'check_call', self._mocked_call) | 81 self.mock(subprocess2, 'check_call', self._mocked_call) |
82 self.mock(subprocess2, 'check_output', self._mocked_call) | 82 self.mock(subprocess2, 'check_output', self._mocked_call) |
83 self.mock(subprocess2, 'communicate', self._mocked_call) | 83 self.mock(subprocess2, 'communicate', self._mocked_call) |
84 self.mock(git_common, 'is_dirty_git_tree', lambda x: False) | 84 self.mock(git_common, 'is_dirty_git_tree', lambda x: False) |
85 self.mock(git_common, 'get_or_create_merge_base', | 85 self.mock(git_common, 'get_or_create_merge_base', |
86 lambda *a: ( | 86 lambda *a: ( |
87 self._mocked_call(['get_or_create_merge_base']+list(a)))) | 87 self._mocked_call(['get_or_create_merge_base']+list(a)))) |
88 self.mock(git_cl, 'BranchExists', lambda _: True) | 88 self.mock(git_cl, 'BranchExists', lambda _: True) |
89 self.mock(git_cl, 'FindCodereviewSettingsFile', lambda: '') | 89 self.mock(git_cl, 'FindCodereviewSettingsFile', lambda: '') |
90 self.mock(git_cl, 'ask_for_data', self._mocked_call) | 90 self.mock(git_cl, 'ask_for_data', self._mocked_call) |
| 91 self.mock(git_cl.breakpad, 'post', self._mocked_call) |
| 92 self.mock(git_cl.breakpad, 'SendStack', self._mocked_call) |
91 self.mock(git_cl.presubmit_support, 'DoPresubmitChecks', PresubmitMock) | 93 self.mock(git_cl.presubmit_support, 'DoPresubmitChecks', PresubmitMock) |
92 self.mock(git_cl.rietveld, 'Rietveld', RietveldMock) | 94 self.mock(git_cl.rietveld, 'Rietveld', RietveldMock) |
93 self.mock(git_cl.rietveld, 'CachingRietveld', RietveldMock) | 95 self.mock(git_cl.rietveld, 'CachingRietveld', RietveldMock) |
94 self.mock(git_cl.upload, 'RealMain', self.fail) | 96 self.mock(git_cl.upload, 'RealMain', self.fail) |
95 self.mock(git_cl.watchlists, 'Watchlists', WatchlistsMock) | 97 self.mock(git_cl.watchlists, 'Watchlists', WatchlistsMock) |
96 self.mock(git_cl.auth, 'get_authenticator_for_host', AuthenticatorMock) | 98 self.mock(git_cl.auth, 'get_authenticator_for_host', AuthenticatorMock) |
97 # It's important to reset settings to not have inter-tests interference. | 99 # It's important to reset settings to not have inter-tests interference. |
98 git_cl.settings = None | 100 git_cl.settings = None |
99 | 101 |
100 def tearDown(self): | 102 def tearDown(self): |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 ((['git', 'config', 'rietveld.tree-status-url'],), ''), | 326 ((['git', 'config', 'rietveld.tree-status-url'],), ''), |
325 ] | 327 ] |
326 | 328 |
327 @classmethod | 329 @classmethod |
328 def _dcommit_calls_bypassed(cls): | 330 def _dcommit_calls_bypassed(cls): |
329 return [ | 331 return [ |
330 ((['git', | 332 ((['git', |
331 'config', 'branch.working.rietveldissue'],), '12345'), | 333 'config', 'branch.working.rietveldissue'],), '12345'), |
332 ((['git', 'config', 'branch.working.rietveldserver'],), | 334 ((['git', 'config', 'branch.working.rietveldserver'],), |
333 'codereview.example.com'), | 335 'codereview.example.com'), |
| 336 ((['git', 'config', 'rietveld.tree-status-url'],), ''), |
| 337 (('GitClHooksBypassedCommit', |
| 338 'Issue https://codereview.example.com/12345 bypassed hook when ' |
| 339 'committing (tree status was "unset")'), None), |
334 ] | 340 ] |
335 | 341 |
336 @classmethod | 342 @classmethod |
337 def _dcommit_calls_3(cls): | 343 def _dcommit_calls_3(cls): |
338 return [ | 344 return [ |
339 ((['git', | 345 ((['git', |
340 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', | 346 'diff', '--no-ext-diff', '--stat', '--find-copies-harder', |
341 '-l100000', '-C50', 'fake_ancestor_sha', | 347 '-l100000', '-C50', 'fake_ancestor_sha', |
342 'refs/heads/working'],), | 348 'refs/heads/working'],), |
343 (' PRESUBMIT.py | 2 +-\n' | 349 (' PRESUBMIT.py | 2 +-\n' |
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
949 self.calls += [ | 955 self.calls += [ |
950 ((['git', 'apply', '--index', '-p0', '--3way'],), '', | 956 ((['git', 'apply', '--index', '-p0', '--3way'],), '', |
951 subprocess2.CalledProcessError(1, '', '', '', '')), | 957 subprocess2.CalledProcessError(1, '', '', '', '')), |
952 ] | 958 ] |
953 self.assertNotEqual(git_cl.main(['patch', '123456']), 0) | 959 self.assertNotEqual(git_cl.main(['patch', '123456']), 0) |
954 | 960 |
955 if __name__ == '__main__': | 961 if __name__ == '__main__': |
956 git_cl.logging.basicConfig( | 962 git_cl.logging.basicConfig( |
957 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR) | 963 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR) |
958 unittest.main() | 964 unittest.main() |
OLD | NEW |