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

Side by Side Diff: tests/presubmit_unittest.py

Issue 2453823002: depot_tools: Remove DoGetTrySlaves, GetTrySlavesExecuter, GetPreferredTrySlaves (Closed)
Patch Set: Rebase Created 4 years, 1 month 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 | « tests/git_cl_test.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 presubmit_support.py and presubmit_canned_checks.py.""" 6 """Unit tests for presubmit_support.py and presubmit_canned_checks.py."""
7 7
8 # pylint: disable=E1101,E1103 8 # pylint: disable=E1101,E1103
9 9
10 import StringIO 10 import StringIO
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 if not input_api.change.NOSUCHKEY: 42 if not input_api.change.NOSUCHKEY:
43 return [output_api.PresubmitError("!!")] 43 return [output_api.PresubmitError("!!")]
44 elif not input_api.change.REALLYNOSUCHKEY: 44 elif not input_api.change.REALLYNOSUCHKEY:
45 return [output_api.PresubmitPromptWarning("??")] 45 return [output_api.PresubmitPromptWarning("??")]
46 elif not input_api.change.REALLYABSOLUTELYNOSUCHKEY: 46 elif not input_api.change.REALLYABSOLUTELYNOSUCHKEY:
47 return [output_api.PresubmitPromptWarning("??"), 47 return [output_api.PresubmitPromptWarning("??"),
48 output_api.PresubmitError("XX!!XX")] 48 output_api.PresubmitError("XX!!XX")]
49 else: 49 else:
50 return () 50 return ()
51 """ 51 """
52 presubmit_tryslave = """
53 def GetPreferredTrySlaves():
54 return %s
55 """
56
57 presubmit_tryslave_project = """
58 def GetPreferredTrySlaves(project):
59 if project == %s:
60 return %s
61 else:
62 return %s
63 """
64 52
65 presubmit_trymaster = """ 53 presubmit_trymaster = """
66 def GetPreferredTryMasters(project, change): 54 def GetPreferredTryMasters(project, change):
67 return %s 55 return %s
68 """ 56 """
69 57
70 presubmit_diffs = """ 58 presubmit_diffs = """
71 --- file1 2011-02-09 10:38:16.517224845 -0800 59 --- file1 2011-02-09 10:38:16.517224845 -0800
72 +++ file2 2011-02-09 10:38:53.177226516 -0800 60 +++ file2 2011-02-09 10:38:53.177226516 -0800
73 @@ -1,6 +1,5 @@ 61 @@ -1,6 +1,5 @@
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 151
164 152
165 class PresubmitUnittest(PresubmitTestsBase): 153 class PresubmitUnittest(PresubmitTestsBase):
166 """General presubmit_support.py tests (excluding InputApi and OutputApi).""" 154 """General presubmit_support.py tests (excluding InputApi and OutputApi)."""
167 155
168 _INHERIT_SETTINGS = 'inherit-review-settings-ok' 156 _INHERIT_SETTINGS = 'inherit-review-settings-ok'
169 157
170 def testMembersChanged(self): 158 def testMembersChanged(self):
171 self.mox.ReplayAll() 159 self.mox.ReplayAll()
172 members = [ 160 members = [
173 'AffectedFile', 'Change', 'DoGetTrySlaves', 161 'AffectedFile', 'Change',
174 'DoPostUploadExecuter', 'DoPresubmitChecks', 'GetPostUploadExecuter', 162 'DoPostUploadExecuter', 'DoPresubmitChecks', 'GetPostUploadExecuter',
175 'GetTrySlavesExecuter', 'GitAffectedFile', 'CallCommand', 'CommandData', 163 'GitAffectedFile', 'CallCommand', 'CommandData',
176 'GitChange', 'InputApi', 'ListRelevantPresubmitFiles', 'main', 164 'GitChange', 'InputApi', 'ListRelevantPresubmitFiles', 'main',
177 'NonexistantCannedCheckFilter', 'OutputApi', 'ParseFiles', 165 'NonexistantCannedCheckFilter', 'OutputApi', 'ParseFiles',
178 'PresubmitFailure', 'PresubmitExecuter', 'PresubmitOutput', 'ScanSubDirs', 166 'PresubmitFailure', 'PresubmitExecuter', 'PresubmitOutput', 'ScanSubDirs',
179 'SvnAffectedFile', 'SvnChange', 'auth', 'cPickle', 'cpplint', 'cStringIO', 167 'SvnAffectedFile', 'SvnChange', 'auth', 'cPickle', 'cpplint', 'cStringIO',
180 'contextlib', 'canned_check_filter', 'fix_encoding', 'fnmatch', 168 'contextlib', 'canned_check_filter', 'fix_encoding', 'fnmatch',
181 'gclient_utils', 'glob', 'inspect', 'json', 'load_files', 'logging', 169 'gclient_utils', 'glob', 'inspect', 'json', 'load_files', 'logging',
182 'marshal', 'normpath', 'optparse', 'os', 'owners', 'pickle', 170 'marshal', 'normpath', 'optparse', 'os', 'owners', 'pickle',
183 'presubmit_canned_checks', 'random', 're', 'rietveld', 'scm', 171 'presubmit_canned_checks', 'random', 're', 'rietveld', 'scm',
184 'subprocess', 'sys', 'tempfile', 'time', 'traceback', 'types', 'unittest', 172 'subprocess', 'sys', 'tempfile', 'time', 'traceback', 'types', 'unittest',
185 'urllib2', 'warn', 'multiprocessing', 'DoGetTryMasters', 173 'urllib2', 'warn', 'multiprocessing', 'DoGetTryMasters',
(...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 self.assertEquals(output.getvalue(), 944 self.assertEquals(output.getvalue(),
957 ('Running presubmit upload checks ...\n' 945 ('Running presubmit upload checks ...\n'
958 'Warning, no PRESUBMIT.py found.\n' 946 'Warning, no PRESUBMIT.py found.\n'
959 'Running default presubmit script.\n' 947 'Running default presubmit script.\n'
960 '\n' 948 '\n'
961 '** Presubmit Messages **\n' 949 '** Presubmit Messages **\n'
962 'http://tracker.com/42\n' 950 'http://tracker.com/42\n'
963 '\n' 951 '\n'
964 'Presubmit checks passed.\n')) 952 'Presubmit checks passed.\n'))
965 953
966 def testGetTrySlavesExecuter(self):
967 self.mox.ReplayAll()
968 change = presubmit.Change(
969 'foo',
970 'Blah Blah\n\nSTORY=http://tracker.com/42\nBUG=boo\n',
971 self.fake_root_dir,
972 None,
973 0,
974 0,
975 None)
976 executer = presubmit.GetTrySlavesExecuter()
977 self.assertEqual([], executer.ExecPresubmitScript('', '', '', change))
978 self.assertEqual([],
979 executer.ExecPresubmitScript('def foo():\n return\n', '', '', change))
980
981 # bad results
982 starts_with_space_result = [' starts_with_space']
983 not_list_result1 = "'foo'"
984 not_list_result2 = "('a', 'tuple')"
985 mixed_old_and_new = ['bot', ('bot2', set(['test']))]
986 not_set = [('bot2', ['test'])]
987 for result in (
988 starts_with_space_result, not_list_result1, not_list_result2,
989 mixed_old_and_new, not_set):
990 self.assertRaises(presubmit.PresubmitFailure,
991 executer.ExecPresubmitScript,
992 self.presubmit_tryslave % result, '', '', change)
993
994 # good results
995 expected_result = ['1', '2', '3']
996 empty_result = []
997 space_in_name_result = ['foo bar', '1\t2 3']
998 new_style = [('bot', set(['cool', 'tests']))]
999 for result in (
1000 expected_result, empty_result, space_in_name_result, new_style):
1001 self.assertEqual(
1002 result,
1003 executer.ExecPresubmitScript(
1004 self.presubmit_tryslave % result, '', '', change))
1005
1006 def testGetTrySlavesExecuterWithProject(self):
1007 self.mox.ReplayAll()
1008
1009 change = presubmit.Change(
1010 'foo',
1011 'Blah Blah\n\nSTORY=http://tracker.com/42\nBUG=boo\n',
1012 self.fake_root_dir,
1013 None,
1014 0,
1015 0,
1016 None)
1017
1018 executer = presubmit.GetTrySlavesExecuter()
1019 expected_result1 = ['1', '2']
1020 expected_result2 = ['a', 'b', 'c']
1021 script = self.presubmit_tryslave_project % (
1022 repr('foo'), repr(expected_result1), repr(expected_result2))
1023 self.assertEqual(
1024 expected_result1, executer.ExecPresubmitScript(script, '', 'foo',
1025 change))
1026 self.assertEqual(
1027 expected_result2, executer.ExecPresubmitScript(script, '', 'bar',
1028 change))
1029
1030 def testDoGetTrySlaves(self):
1031 join = presubmit.os.path.join
1032 filename = 'foo.cc'
1033 filename_linux = join('linux_only', 'penguin.cc')
1034 root_presubmit = join(self.fake_root_dir, 'PRESUBMIT.py')
1035 linux_presubmit = join(self.fake_root_dir, 'linux_only', 'PRESUBMIT.py')
1036 inherit_path = presubmit.os.path.join(self.fake_root_dir,
1037 self._INHERIT_SETTINGS)
1038
1039 presubmit.os.path.isfile(inherit_path).AndReturn(False)
1040 presubmit.os.listdir(self.fake_root_dir).AndReturn(['PRESUBMIT.py'])
1041 presubmit.os.path.isfile(root_presubmit).AndReturn(True)
1042 presubmit.gclient_utils.FileRead(root_presubmit, 'rU').AndReturn(
1043 self.presubmit_tryslave % '["win"]')
1044
1045 presubmit.os.path.isfile(inherit_path).AndReturn(False)
1046 presubmit.os.listdir(self.fake_root_dir).AndReturn(['PRESUBMIT.py'])
1047 presubmit.os.path.isfile(root_presubmit).AndReturn(True)
1048 presubmit.os.listdir(join(self.fake_root_dir, 'linux_only')).AndReturn(
1049 ['PRESUBMIT.py'])
1050 presubmit.os.path.isfile(linux_presubmit).AndReturn(True)
1051 presubmit.gclient_utils.FileRead(root_presubmit, 'rU').AndReturn(
1052 self.presubmit_tryslave % '["win"]')
1053 presubmit.gclient_utils.FileRead(linux_presubmit, 'rU').AndReturn(
1054 self.presubmit_tryslave % '["linux"]')
1055 self.mox.ReplayAll()
1056
1057 change = presubmit.Change(
1058 'mychange', '', self.fake_root_dir, [], 0, 0, None)
1059
1060 output = StringIO.StringIO()
1061 self.assertEqual(['win'],
1062 presubmit.DoGetTrySlaves(change, [filename],
1063 self.fake_root_dir,
1064 None, None, False, output))
1065 output = StringIO.StringIO()
1066 self.assertEqual(['win', 'linux'],
1067 presubmit.DoGetTrySlaves(change,
1068 [filename, filename_linux],
1069 self.fake_root_dir, None, None,
1070 False, output))
1071
1072 def testGetTrySlavesExecuter_ok(self):
1073 script_text = (
1074 'def GetPreferredTrySlaves():\n'
1075 ' return ["foo", "bar"]\n')
1076 results = presubmit.GetTrySlavesExecuter.ExecPresubmitScript(
1077 script_text, 'path', 'project', None)
1078 self.assertEquals(['foo', 'bar'], results)
1079
1080 def testGetTrySlavesExecuter_comma(self):
1081 script_text = (
1082 'def GetPreferredTrySlaves():\n'
1083 ' return ["foo,bar"]\n')
1084 try:
1085 presubmit.GetTrySlavesExecuter.ExecPresubmitScript(
1086 script_text, 'path', 'project', None)
1087 self.fail()
1088 except presubmit.PresubmitFailure:
1089 pass
1090
1091 def testGetTryMastersExecuter(self): 954 def testGetTryMastersExecuter(self):
1092 self.mox.ReplayAll() 955 self.mox.ReplayAll()
1093 change = presubmit.Change( 956 change = presubmit.Change(
1094 'foo', 957 'foo',
1095 'Blah Blah\n\nSTORY=http://tracker.com/42\nBUG=boo\n', 958 'Blah Blah\n\nSTORY=http://tracker.com/42\nBUG=boo\n',
1096 self.fake_root_dir, 959 self.fake_root_dir,
1097 None, 960 None,
1098 0, 961 0,
1099 0, 962 0,
1100 None) 963 None)
(...skipping 1997 matching lines...) Expand 10 before | Expand all | Expand 10 after
3098 owners_check=False) 2961 owners_check=False)
3099 self.assertEqual(2, len(results)) 2962 self.assertEqual(2, len(results))
3100 self.assertEqual( 2963 self.assertEqual(
3101 'Found line ending with white spaces in:', results[0]._message) 2964 'Found line ending with white spaces in:', results[0]._message)
3102 self.checkstdout('') 2965 self.checkstdout('')
3103 2966
3104 2967
3105 if __name__ == '__main__': 2968 if __name__ == '__main__':
3106 import unittest 2969 import unittest
3107 unittest.main() 2970 unittest.main()
OLDNEW
« no previous file with comments | « tests/git_cl_test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698