| 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 pending_manager.py.""" | 6 """Unit tests for pending_manager.py.""" |
| 7 | 7 |
| 8 import logging | 8 import logging |
| 9 import os | 9 import os |
| 10 import re | 10 import re |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 [ _try_comment(), | 106 [ _try_comment(), |
| 107 'close_issue(%d)' % issue, | 107 'close_issue(%d)' % issue, |
| 108 "update_description(%d, u'foo')" % issue, | 108 "update_description(%d, u'foo')" % issue, |
| 109 "add_comment(%d, 'Change committed as 125')" % issue]) | 109 "add_comment(%d, 'Change committed as 125')" % issue]) |
| 110 else: | 110 else: |
| 111 self.context.checkout.check_calls( | 111 self.context.checkout.check_calls( |
| 112 [ 'prepare(None)', | 112 [ 'prepare(None)', |
| 113 'apply_patch(%r)' % (self.context.rietveld.patchsets[0],)]) | 113 'apply_patch(%r)' % (self.context.rietveld.patchsets[0],)]) |
| 114 self.context.rietveld.check_calls( | 114 self.context.rietveld.check_calls( |
| 115 [ _try_comment(), | 115 [ _try_comment(), |
| 116 "set_flag(%d, 1, 'commit', 'False')" % issue, | 116 "set_flag(%d, 1, 'commit', False)" % issue, |
| 117 "add_comment(%d, %r)" % (issue, pc.FAILED_NO_MESSAGE)]) | 117 "add_comment(%d, %r)" % (issue, pc.FAILED_NO_MESSAGE)]) |
| 118 else: | 118 else: |
| 119 if success: | 119 if success: |
| 120 self.context.checkout.check_calls( | 120 self.context.checkout.check_calls( |
| 121 self._prepare_apply_commit(0, issue)) | 121 self._prepare_apply_commit(0, issue)) |
| 122 self.context.rietveld.check_calls( | 122 self.context.rietveld.check_calls( |
| 123 [ _try_comment(), | 123 [ _try_comment(), |
| 124 'close_issue(%d)' % issue, | 124 'close_issue(%d)' % issue, |
| 125 "update_description(%d, u'foo')" % issue, | 125 "update_description(%d, u'foo')" % issue, |
| 126 "add_comment(%d, 'Change committed as 125')" % issue]) | 126 "add_comment(%d, 'Change committed as 125')" % issue]) |
| 127 else: | 127 else: |
| 128 # checkout is never touched in that case. | 128 # checkout is never touched in that case. |
| 129 self.context.checkout.check_calls([]) | 129 self.context.checkout.check_calls([]) |
| 130 if defered: | 130 if defered: |
| 131 self.context.rietveld.check_calls( | 131 self.context.rietveld.check_calls( |
| 132 [ _try_comment(), | 132 [ _try_comment(), |
| 133 "set_flag(%d, 1, 'commit', 'False')" % issue, | 133 "set_flag(%d, 1, 'commit', False)" % issue, |
| 134 "add_comment(%d, %r)" % (issue, pc.FAILED_NO_MESSAGE)]) | 134 "add_comment(%d, %r)" % (issue, pc.FAILED_NO_MESSAGE)]) |
| 135 else: | 135 else: |
| 136 self.context.rietveld.check_calls( | 136 self.context.rietveld.check_calls( |
| 137 [ "set_flag(%d, 1, 'commit', 'False')" % issue, | 137 [ "set_flag(%d, 1, 'commit', False)" % issue, |
| 138 "add_comment(%d, %r)" % (issue, pc.FAILED_NO_MESSAGE)]) | 138 "add_comment(%d, %r)" % (issue, pc.FAILED_NO_MESSAGE)]) |
| 139 | 139 |
| 140 def _prepare_apply_commit(self, index, issue, server_hooks_missing=False): | 140 def _prepare_apply_commit(self, index, issue, server_hooks_missing=False): |
| 141 """Returns a frequent sequence of action happening on the Checkout object. | 141 """Returns a frequent sequence of action happening on the Checkout object. |
| 142 | 142 |
| 143 The list returned by this function should be used as an argument to | 143 The list returned by this function should be used as an argument to |
| 144 self.context.checkout.check_calls(). | 144 self.context.checkout.check_calls(). |
| 145 """ | 145 """ |
| 146 seq = [ | 146 seq = [ |
| 147 # Reverts any previous modification or checkout the tree if it was not | 147 # Reverts any previous modification or checkout the tree if it was not |
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 614 self.assertEqual(0, len(pc.queue.iterate())) | 614 self.assertEqual(0, len(pc.queue.iterate())) |
| 615 pc.look_for_new_pending_commit() | 615 pc.look_for_new_pending_commit() |
| 616 self.assertEqual(1, len(pc.queue.iterate())) | 616 self.assertEqual(1, len(pc.queue.iterate())) |
| 617 # Pop the LGTM. | 617 # Pop the LGTM. |
| 618 pc.queue.iterate()[0].messages.pop(1) | 618 pc.queue.iterate()[0].messages.pop(1) |
| 619 pc.process_new_pending_commit() | 619 pc.process_new_pending_commit() |
| 620 self.assertEqual(0, len(pc.queue.iterate())) | 620 self.assertEqual(0, len(pc.queue.iterate())) |
| 621 pc.update_status() | 621 pc.update_status() |
| 622 self.assertEqual(0, len(pc.queue.iterate())) | 622 self.assertEqual(0, len(pc.queue.iterate())) |
| 623 self.context.rietveld.check_calls( | 623 self.context.rietveld.check_calls( |
| 624 [ "set_flag(%d, 1, 'commit', 'False')" % issue, | 624 [ "set_flag(%d, 1, 'commit', False)" % issue, |
| 625 "add_comment(%d, %r)" % (issue, reviewer_lgtm.LgtmStatus.NO_LGTM)]) | 625 "add_comment(%d, %r)" % (issue, reviewer_lgtm.LgtmStatus.NO_LGTM)]) |
| 626 self.context.status.check_names(['abort']) | 626 self.context.status.check_names(['abort']) |
| 627 | 627 |
| 628 def testVerifyDefaultMockPlusLGTM(self): | 628 def testVerifyDefaultMockPlusLGTM(self): |
| 629 # Verify mock expectation with a single approval message. | 629 # Verify mock expectation with a single approval message. |
| 630 issue = 31337 | 630 issue = 31337 |
| 631 pc = self._get_pc_reviewer() | 631 pc = self._get_pc_reviewer() |
| 632 self._approve() | 632 self._approve() |
| 633 self.assertEqual(0, len(pc.queue.iterate())) | 633 self.assertEqual(0, len(pc.queue.iterate())) |
| 634 pc.look_for_new_pending_commit() | 634 pc.look_for_new_pending_commit() |
| (...skipping 19 matching lines...) Expand all Loading... |
| 654 self._approve() | 654 self._approve() |
| 655 pc.look_for_new_pending_commit() | 655 pc.look_for_new_pending_commit() |
| 656 pc.process_new_pending_commit() | 656 pc.process_new_pending_commit() |
| 657 pc.update_status() | 657 pc.update_status() |
| 658 # A new reviewer prevents the commit. | 658 # A new reviewer prevents the commit. |
| 659 i = self.context.rietveld.issues[issue] | 659 i = self.context.rietveld.issues[issue] |
| 660 i['reviewers'] = i['reviewers'] + ['annoying@dude.org'] | 660 i['reviewers'] = i['reviewers'] + ['annoying@dude.org'] |
| 661 pc.scan_results() | 661 pc.scan_results() |
| 662 self.context.rietveld.check_calls( | 662 self.context.rietveld.check_calls( |
| 663 [ _try_comment(), | 663 [ _try_comment(), |
| 664 "set_flag(%d, 1, 'commit', 'False')" % issue, | 664 "set_flag(%d, 1, 'commit', False)" % issue, |
| 665 ('add_comment(%d, "List of reviewers changed. annoying@dude.org ' | 665 ('add_comment(%d, "List of reviewers changed. annoying@dude.org ' |
| 666 'did a drive-by without LGTM\'ing!")') % issue]) | 666 'did a drive-by without LGTM\'ing!")') % issue]) |
| 667 self.context.status.check_names(['initial', 'abort']) | 667 self.context.status.check_names(['initial', 'abort']) |
| 668 | 668 |
| 669 def testDriveByLGTM(self): | 669 def testDriveByLGTM(self): |
| 670 issue = 31337 | 670 issue = 31337 |
| 671 pc = self._get_pc_reviewer() | 671 pc = self._get_pc_reviewer() |
| 672 self._approve() | 672 self._approve() |
| 673 pc.look_for_new_pending_commit() | 673 pc.look_for_new_pending_commit() |
| 674 pc.process_new_pending_commit() | 674 pc.process_new_pending_commit() |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 720 self.context.checkout.check_calls( | 720 self.context.checkout.check_calls( |
| 721 self._prepare_apply_commit(0, issue)) | 721 self._prepare_apply_commit(0, issue)) |
| 722 | 722 |
| 723 | 723 |
| 724 if __name__ == '__main__': | 724 if __name__ == '__main__': |
| 725 logging.basicConfig( | 725 logging.basicConfig( |
| 726 level=[logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG][ | 726 level=[logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG][ |
| 727 min(sys.argv.count('-v'), 3)], | 727 min(sys.argv.count('-v'), 3)], |
| 728 format='%(levelname)5s %(module)15s(%(lineno)3d): %(message)s') | 728 format='%(levelname)5s %(module)15s(%(lineno)3d): %(message)s') |
| 729 unittest.main() | 729 unittest.main() |
| OLD | NEW |