Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Side by Side Diff: depot_tools/tests/git_cl_test.py

Issue 501503002: Stop git cl using CQ_TRYBOTS. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools/@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « depot_tools/git_cl.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
11 import sys 11 import sys
12 import unittest 12 import unittest
13 import re
14 13
15 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 14 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
16 15
17 from testing_support.auto_stub import TestCase 16 from testing_support.auto_stub import TestCase
18 17
19 import git_cl 18 import git_cl
20 import git_common 19 import git_common
21 import subprocess2 20 import subprocess2
22 import presubmit_support
23 21
24 class PresubmitMock(object): 22 class PresubmitMock(object):
25 def __init__(self, *args, **kwargs): 23 def __init__(self, *args, **kwargs):
26 self.reviewers = [] 24 self.reviewers = []
27 @staticmethod 25 @staticmethod
28 def should_continue(): 26 def should_continue():
29 return True 27 return True
30 28
31 29
32 class RietveldMock(object): 30 class RietveldMock(object):
(...skipping 715 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 ('foo BUG=allo R=joe ', ['c@c'], 'foo BUG=allo R=joe\n\nR=c@c'), 746 ('foo BUG=allo R=joe ', ['c@c'], 'foo BUG=allo R=joe\n\nR=c@c'),
749 ] 747 ]
750 expected = [i[2] for i in data] 748 expected = [i[2] for i in data]
751 actual = [] 749 actual = []
752 for orig, reviewers, _expected in data: 750 for orig, reviewers, _expected in data:
753 obj = git_cl.ChangeDescription(orig) 751 obj = git_cl.ChangeDescription(orig)
754 obj.update_reviewers(reviewers) 752 obj.update_reviewers(reviewers)
755 actual.append(obj.description) 753 actual.append(obj.description)
756 self.assertEqual(expected, actual) 754 self.assertEqual(expected, actual)
757 755
758 def test_trybots_from_PRESUBMIT(self):
759 TEST_MASTER = 'testMaster'
760 TEST_BUILDER = 'testBuilder'
761 MASTERS = {TEST_MASTER:{TEST_BUILDER:['a']}}
762 self.mock(presubmit_support, 'DoGetTryMasters',
763 lambda *args: MASTERS)
764
765 change_mock = ChangeMock()
766 changelist_mock = ChangelistMock(change_mock)
767 self.mock(git_cl, 'is_dirty_git_tree', lambda x: False)
768 self.mock(git_cl, 'print_stats', lambda *arg: True)
769 self.mock(git_cl, 'Changelist', lambda *args: changelist_mock)
770 self.mock(git_cl, 'CreateDescriptionFromLog', lambda arg: 'Commit message')
771 self.mock(git_cl.ChangeDescription, 'prompt', lambda self: None)
772
773 self.calls = [
774 ((['git', 'config', 'rietveld.autoupdate',],),
775 ''),
776 ((['git', 'config', 'gerrit.host',],),
777 ''),
778 ((['git', 'rev-parse', '--show-cdup',],),
779 ''),
780 ((['git', 'config', 'rietveld.private',],),
781 ''),
782 ((['git', 'config', 'rietveld.pending-ref-prefix',],),
783 ''),
784 ((['git', 'config', '--local', '--get-regexp', '^svn-remote\\.'],),
785 ''),
786 ((['git', 'config', 'rietveld.project',],),
787 ''),
788 ((['git', 'rev-parse', 'HEAD',],),
789 ''),
790 ]
791
792 stored_description = []
793 def check_upload(args):
794 i = 0
795 for arg in args:
796 if arg == '--message':
797 break
798 i += 1
799
800 self.assertTrue(i < len(args))
801 stored_description.append(args[i+1])
802 return 1, 2
803 self.mock(git_cl.upload, 'RealMain', check_upload)
804
805 git_cl.main(['upload', '--bypass-hooks', '--auto-bots'])
806 found = re.search("CQ_TRYBOTS=(.*?)$", stored_description[0])
807 self.assertTrue(found)
808 self.assertEqual(found.group(1), '%s:%s' % (TEST_MASTER, TEST_BUILDER))
809
810
811 class ChangelistMock(object):
812 # Disable "Method could be a function"
813 # pylint: disable=R0201
814
815 def __init__(self, change_mock):
816 self.change_mock = change_mock
817
818 def GetChange(self, *args):
819 return self.change_mock
820
821 def GetIssue(self):
822 return None
823
824 def GetBranch(self):
825 return []
826
827 def GetCommonAncestorWithUpstream(self):
828 return []
829
830 def GetCCList(self):
831 return []
832
833 def GetGitBaseUrlFromConfig(self):
834 return ''
835
836 def GetRemoteUrl(self):
837 return ''
838
839 def GetRietveldServer(self):
840 return None
841
842 def SetWatchers(self, *args):
843 pass
844
845 def SetIssue(self, issue):
846 pass
847
848 def SetPatchset(self, issue):
849 pass
850
851
852 class ChangeMock(object):
853 # Disable "Method could be a function"
854 # pylint: disable=R0201
855
856 def __init__(self):
857 self.stored_description = None
858
859 def SetDescriptionText(self, desc):
860 self.stored_description = desc
861
862 def FullDescriptionText(self):
863 return 'HIHI TEST DESCRIPTION'
864
865 def RepositoryRoot(self):
866 return []
867
868 def AffectedFiles(self):
869 return []
870
871 def LocalPaths(self):
872 return None
873
874 if __name__ == '__main__': 756 if __name__ == '__main__':
875 git_cl.logging.basicConfig( 757 git_cl.logging.basicConfig(
876 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR) 758 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR)
877 unittest.main() 759 unittest.main()
OLDNEW
« no previous file with comments | « depot_tools/git_cl.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698