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

Side by Side Diff: tests/gcl_unittest.py

Issue 1619005: Allow the existence of ~/.gcl_upload_no_try override the default of try on up... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools/
Patch Set: '' Created 10 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « gcl.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/python 1 #!/usr/bin/python
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 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 gcl.py.""" 6 """Unit tests for gcl.py."""
7 7
8 # Fixes include path. 8 # Fixes include path.
9 from super_mox import mox, SuperMoxTestBase 9 from super_mox import mox, SuperMoxTestBase
10 10
(...skipping 15 matching lines...) Expand all
26 gcl.REPOSITORY_ROOT = None 26 gcl.REPOSITORY_ROOT = None
27 27
28 28
29 class GclUnittest(GclTestsBase): 29 class GclUnittest(GclTestsBase):
30 """General gcl.py tests.""" 30 """General gcl.py tests."""
31 def testMembersChanged(self): 31 def testMembersChanged(self):
32 self.mox.ReplayAll() 32 self.mox.ReplayAll()
33 members = [ 33 members = [
34 'CODEREVIEW_SETTINGS', 'CODEREVIEW_SETTINGS_FILE', 'Change', 34 'CODEREVIEW_SETTINGS', 'CODEREVIEW_SETTINGS_FILE', 'Change',
35 'ChangeInfo', 'Changes', 'Commit', 'DEFAULT_LINT_IGNORE_REGEX', 35 'ChangeInfo', 'Changes', 'Commit', 'DEFAULT_LINT_IGNORE_REGEX',
36 'DEFAULT_LINT_REGEX', 'DeleteEmptyChangeLists', 'DoPresubmitChecks', 36 'DEFAULT_LINT_REGEX', 'CheckHomeForFile', 'DeleteEmptyChangeLists',
37 'ErrorExit', 'FILES_CACHE', 'FilterFlag', 'GenerateChangeName', 37 'DoPresubmitChecks', 'ErrorExit', 'FILES_CACHE', 'FilterFlag',
38 'GenerateDiff', 'GetCLs', 'GetCacheDir', 'GetCachedFile', 38 'GenerateChangeName', 'GenerateDiff', 'GetCLs', 'GetCacheDir',
39 'GetChangelistInfoFile', 'GetChangesDir', 'GetCodeReviewSetting', 39 'GetCachedFile', 'GetChangelistInfoFile', 'GetChangesDir',
40 'GetEditor', 'GetFilesNotInCL', 'GetInfoDir', 'GetIssueDescription', 40 'GetCodeReviewSetting', 'GetEditor', 'GetFilesNotInCL', 'GetInfoDir',
41 'GetModifiedFiles', 'GetRepositoryRoot', 'Help', 'Lint', 41 'GetIssueDescription', 'GetModifiedFiles', 'GetRepositoryRoot', 'Help',
42 'LoadChangelistInfoForMultiple', 'MISSING_TEST_MSG', 'Opened', 42 'Lint', 'LoadChangelistInfoForMultiple', 'MISSING_TEST_MSG', 'Opened',
43 'OptionallyDoPresubmitChecks', 'PresubmitCL', 'REPOSITORY_ROOT', 43 'OptionallyDoPresubmitChecks', 'PresubmitCL', 'REPOSITORY_ROOT',
44 'RunShell', 'RunShellWithReturnCode', 'SVN', 44 'RunShell', 'RunShellWithReturnCode', 'SVN',
45 'SendToRietveld', 'TryChange', 'UnknownFiles', 'UploadCL', 'Warn', 45 'SendToRietveld', 'TryChange', 'UnknownFiles', 'UploadCL', 'Warn',
46 'breakpad', 'gclient_utils', 'getpass', 'main', 'os', 'random', 're', 46 'breakpad', 'gclient_utils', 'getpass', 'main', 'os', 'random', 're',
47 'shutil', 'string', 'subprocess', 'sys', 'tempfile', 'upload', 47 'shutil', 'string', 'subprocess', 'sys', 'tempfile', 'upload',
48 'urllib2', 48 'urllib2',
49 ] 49 ]
50 # If this test fails, you should add the relevant test. 50 # If this test fails, you should add the relevant test.
51 self.compareMembers(gcl, members) 51 self.compareMembers(gcl, members)
52 52
53 def testIsSVNMoved(self): 53 def testIsSVNMoved(self):
54 # TODO(maruel): TEST ME 54 # TODO(maruel): TEST ME
55 pass 55 pass
56 56
57 def testGetSVNFileProperty(self): 57 def testGetSVNFileProperty(self):
58 # TODO(maruel): TEST ME 58 # TODO(maruel): TEST ME
59 pass 59 pass
60 60
61 def testUnknownFiles(self): 61 def testUnknownFiles(self):
62 # TODO(maruel): TEST ME 62 # TODO(maruel): TEST ME
63 pass 63 pass
64 64
65 def testCheckHomeForFile(self):
66 # TODO(maruel): TEST ME
67 pass
68
65 def testGetRepositoryRootNone(self): 69 def testGetRepositoryRootNone(self):
66 gcl.os.getcwd().AndReturn(self.fake_root_dir) 70 gcl.os.getcwd().AndReturn(self.fake_root_dir)
67 gcl.SVN.GetCheckoutRoot(self.fake_root_dir).AndReturn(None) 71 gcl.SVN.GetCheckoutRoot(self.fake_root_dir).AndReturn(None)
68 self.mox.ReplayAll() 72 self.mox.ReplayAll()
69 self.assertRaises(gcl.gclient_utils.Error, gcl.GetRepositoryRoot) 73 self.assertRaises(gcl.gclient_utils.Error, gcl.GetRepositoryRoot)
70 74
71 def testGetRepositoryRootGood(self): 75 def testGetRepositoryRootGood(self):
72 root_path = gcl.os.path.join('bleh', 'prout', 'pouet') 76 root_path = gcl.os.path.join('bleh', 'prout', 'pouet')
73 gcl.os.getcwd().AndReturn(root_path) 77 gcl.os.getcwd().AndReturn(root_path)
74 gcl.SVN.GetCheckoutRoot(root_path).AndReturn(root_path + '.~') 78 gcl.SVN.GetCheckoutRoot(root_path).AndReturn(root_path + '.~')
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 self.mox.ReplayAll() 226 self.mox.ReplayAll()
223 227
224 change_info = gcl.ChangeInfo('', 0, 0, '', None, self.fake_root_dir, 228 change_info = gcl.ChangeInfo('', 0, 0, '', None, self.fake_root_dir,
225 needs_upload=True) 229 needs_upload=True)
226 change_info.Save() 230 change_info.Save()
227 231
228 232
229 class UploadCLUnittest(GclTestsBase): 233 class UploadCLUnittest(GclTestsBase):
230 def setUp(self): 234 def setUp(self):
231 GclTestsBase.setUp(self) 235 GclTestsBase.setUp(self)
236 self.mox.StubOutWithMock(gcl, 'CheckHomeForFile')
232 self.mox.StubOutWithMock(gcl, 'DoPresubmitChecks') 237 self.mox.StubOutWithMock(gcl, 'DoPresubmitChecks')
233 self.mox.StubOutWithMock(gcl, 'GenerateDiff') 238 self.mox.StubOutWithMock(gcl, 'GenerateDiff')
234 self.mox.StubOutWithMock(gcl, 'GetCodeReviewSetting') 239 self.mox.StubOutWithMock(gcl, 'GetCodeReviewSetting')
235 self.mox.StubOutWithMock(gcl, 'GetRepositoryRoot') 240 self.mox.StubOutWithMock(gcl, 'GetRepositoryRoot')
236 self.mox.StubOutWithMock(gcl, 'SendToRietveld') 241 self.mox.StubOutWithMock(gcl, 'SendToRietveld')
237 self.mox.StubOutWithMock(gcl, 'TryChange') 242 self.mox.StubOutWithMock(gcl, 'TryChange')
238 243
239 def testNew(self): 244 def testNew(self):
240 change_info = self.mox.CreateMock(gcl.ChangeInfo) 245 change_info = self.mox.CreateMock(gcl.ChangeInfo)
241 change_info.name = 'naame' 246 change_info.name = 'naame'
242 change_info.issue = 1 247 change_info.issue = 1
243 change_info.patchset = 0 248 change_info.patchset = 0
244 change_info.description = 'deescription', 249 change_info.description = 'deescription',
245 change_info.files = [('A', 'aa'), ('M', 'bb')] 250 change_info.files = [('A', 'aa'), ('M', 'bb')]
246 change_info.patch = None 251 change_info.patch = None
247 files = [item[1] for item in change_info.files] 252 files = [item[1] for item in change_info.files]
248 args = ['--foo=bar'] 253 args = ['--foo=bar']
254 gcl.CheckHomeForFile('.gcl_upload_no_try').AndReturn(None)
249 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) 255 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True)
250 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') 256 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server')
251 gcl.os.getcwd().AndReturn('somewhere') 257 gcl.os.getcwd().AndReturn('somewhere')
252 change_info.GetFiles().AndReturn(change_info.files) 258 change_info.GetFiles().AndReturn(change_info.files)
253 change_info.GetLocalRoot().AndReturn('proout') 259 change_info.GetLocalRoot().AndReturn('proout')
254 gcl.os.chdir('proout') 260 gcl.os.chdir('proout')
255 change_info.GetFileNames().AndReturn(files) 261 change_info.GetFileNames().AndReturn(files)
256 gcl.GenerateDiff(files) 262 gcl.GenerateDiff(files)
257 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--foo=bar', 263 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--foo=bar',
258 "--message=''", '--issue=1'], change_info.patch).AndReturn(("1", 264 "--message=''", '--issue=1'], change_info.patch).AndReturn(("1",
259 "2")) 265 "2"))
260 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) 266 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5)
261 gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') 267 gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True')
262 gcl.TryChange(change_info, [], swallow_exception=True) 268 gcl.TryChange(change_info, [], swallow_exception=True)
263 gcl.os.chdir('somewhere') 269 gcl.os.chdir('somewhere')
264 change_info.Save() 270 change_info.Save()
265 self.mox.ReplayAll() 271 self.mox.ReplayAll()
266 272
267 gcl.UploadCL(change_info, args) 273 gcl.UploadCL(change_info, args)
268 274
269 def testServerOverride(self): 275 def testServerOverride(self):
270 change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', 276 change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription',
271 [('A', 'aa'), ('M', 'bb')], 277 [('A', 'aa'), ('M', 'bb')],
272 self.fake_root_dir) 278 self.fake_root_dir)
273 self.mox.StubOutWithMock(change_info, 'Save') 279 self.mox.StubOutWithMock(change_info, 'Save')
274 args = ['--server=a', '--no_watchlists'] 280 args = ['--server=a', '--no_watchlists']
275 change_info.Save() 281 change_info.Save()
282 gcl.CheckHomeForFile('.gcl_upload_no_try').AndReturn(None)
276 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) 283 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True)
277 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') 284 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server')
278 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) 285 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile'))
279 gcl.os.write(42, change_info.description) 286 gcl.os.write(42, change_info.description)
280 gcl.os.close(42) 287 gcl.os.close(42)
281 gcl.GetCodeReviewSetting('CC_LIST') 288 gcl.GetCodeReviewSetting('CC_LIST')
282 gcl.GetCodeReviewSetting('PRIVATE') 289 gcl.GetCodeReviewSetting('PRIVATE')
283 gcl.os.getcwd().AndReturn('somewhere') 290 gcl.os.getcwd().AndReturn('somewhere')
284 gcl.os.chdir(change_info.GetLocalRoot()) 291 gcl.os.chdir(change_info.GetLocalRoot())
285 gcl.GenerateDiff(change_info.GetFileNames()) 292 gcl.GenerateDiff(change_info.GetFileNames())
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 327
321 gcl.UploadCL(change_info, args) 328 gcl.UploadCL(change_info, args)
322 329
323 def testNormal(self): 330 def testNormal(self):
324 change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', 331 change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription',
325 [('A', 'aa'), ('M', 'bb')], 332 [('A', 'aa'), ('M', 'bb')],
326 self.fake_root_dir) 333 self.fake_root_dir)
327 self.mox.StubOutWithMock(change_info, 'Save') 334 self.mox.StubOutWithMock(change_info, 'Save')
328 args = ['--no_watchlists'] 335 args = ['--no_watchlists']
329 change_info.Save() 336 change_info.Save()
337 gcl.CheckHomeForFile('.gcl_upload_no_try').AndReturn(None)
330 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True) 338 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True)
331 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') 339 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server')
332 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) 340 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile'))
333 gcl.os.write(42, change_info.description) 341 gcl.os.write(42, change_info.description)
334 gcl.os.close(42) 342 gcl.os.close(42)
335 gcl.GetCodeReviewSetting('CC_LIST') 343 gcl.GetCodeReviewSetting('CC_LIST')
336 gcl.GetCodeReviewSetting('PRIVATE') 344 gcl.GetCodeReviewSetting('PRIVATE')
337 gcl.os.getcwd().AndReturn('somewhere') 345 gcl.os.getcwd().AndReturn('somewhere')
338 gcl.os.chdir(change_info.GetLocalRoot()) 346 gcl.os.chdir(change_info.GetLocalRoot())
339 gcl.GenerateDiff(change_info.GetFileNames()) 347 gcl.GenerateDiff(change_info.GetFileNames())
340 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', 348 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server',
341 "--description_file=descfile", 349 "--description_file=descfile",
342 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) 350 "--message=deescription"], change_info.patch).AndReturn(("1", "2"))
343 gcl.os.remove('descfile') 351 gcl.os.remove('descfile')
344 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) 352 gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5)
345 gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') 353 gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True')
346 gcl.TryChange(change_info, [], swallow_exception=True) 354 gcl.TryChange(change_info, [], swallow_exception=True)
347 gcl.os.chdir('somewhere') 355 gcl.os.chdir('somewhere')
348 self.mox.ReplayAll() 356 self.mox.ReplayAll()
349 357
350 gcl.UploadCL(change_info, args) 358 gcl.UploadCL(change_info, args)
351 self.assertEquals(change_info.issue, 1) 359 self.assertEquals(change_info.issue, 1)
352 self.assertEquals(change_info.patchset, 2) 360 self.assertEquals(change_info.patchset, 2)
353 361
354 362
355 if __name__ == '__main__': 363 if __name__ == '__main__':
356 import unittest 364 import unittest
357 unittest.main() 365 unittest.main()
OLDNEW
« no previous file with comments | « gcl.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698