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 gcl.py.""" | 6 """Unit tests for gcl.py.""" |
7 | 7 |
8 # pylint: disable=E1103,E1101,E1120 | 8 # pylint: disable=E1103,E1101,E1120 |
9 | 9 |
10 import os | 10 import os |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 def testChangeInfoMembers(self): | 180 def testChangeInfoMembers(self): |
181 self.mox.ReplayAll() | 181 self.mox.ReplayAll() |
182 members = [ | 182 members = [ |
183 'CloseIssue', 'Delete', 'Exists', 'GetFiles', 'GetFileNames', | 183 'CloseIssue', 'Delete', 'Exists', 'GetFiles', 'GetFileNames', |
184 'GetLocalRoot', 'GetIssueDescription', 'Load', 'MissingTests', | 184 'GetLocalRoot', 'GetIssueDescription', 'Load', 'MissingTests', |
185 'NeedsUpload', 'PrimeLint', 'RpcServer', 'Save', 'SendToRietveld', | 185 'NeedsUpload', 'PrimeLint', 'RpcServer', 'Save', 'SendToRietveld', |
186 'SEPARATOR', | 186 'SEPARATOR', |
187 'UpdateRietveldDescription', | 187 'UpdateRietveldDescription', |
188 'description', 'issue', 'name', | 188 'description', 'issue', 'name', |
189 'needs_upload', 'patch', 'patchset', 'reviewers', 'rietveld', | 189 'needs_upload', 'patch', 'patchset', 'reviewers', 'rietveld', |
| 190 'subject', |
190 ] | 191 ] |
191 # If this test fails, you should add the relevant test. | 192 # If this test fails, you should add the relevant test. |
192 self.compareMembers( | 193 self.compareMembers( |
193 gcl.ChangeInfo('', 0, 0, '', None, self.fake_root_dir, 'foo', False), | 194 gcl.ChangeInfo('', 0, 0, '', None, self.fake_root_dir, 'foo', False), |
194 members) | 195 members) |
195 | 196 |
196 def testChangeInfoBase(self): | 197 def testChangeInfoBase(self): |
197 files = [('M', 'foo'), ('A', 'bar')] | 198 files = [('M', 'foo'), ('A', 'bar')] |
198 self.mox.ReplayAll() | 199 self.mox.ReplayAll() |
199 o = gcl.ChangeInfo( | 200 o = gcl.ChangeInfo( |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 change_info.rietveld = 'https://my_server' | 305 change_info.rietveld = 'https://my_server' |
305 files = [item[1] for item in change_info.files] | 306 files = [item[1] for item in change_info.files] |
306 output = presubmit_support.PresubmitOutput() | 307 output = presubmit_support.PresubmitOutput() |
307 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) | 308 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) |
308 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') | 309 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
309 gcl.os.getcwd().AndReturn('somewhere') | 310 gcl.os.getcwd().AndReturn('somewhere') |
310 change_info.GetFiles().AndReturn(change_info.files) | 311 change_info.GetFiles().AndReturn(change_info.files) |
311 gcl.os.chdir('proout') | 312 gcl.os.chdir('proout') |
312 change_info.GetFileNames().AndReturn(files) | 313 change_info.GetFileNames().AndReturn(files) |
313 gcl.GenerateDiff(files) | 314 gcl.GenerateDiff(files) |
314 gcl.upload.RealMain( | 315 gcl.upload.RealMain(['upload.py', '-y', '--server=https://my_server', |
315 [ 'upload.py', '-y', '--server=https://my_server', | 316 '-r', 'georges@example.com', |
316 '-r', 'georges@example.com', '--issue=1'], | 317 '--message=\'\'', '--issue=1'], |
317 change_info.patch).AndReturn(("1", | 318 change_info.patch).AndReturn(("1", |
318 "2")) | 319 "2")) |
319 change_info.GetLocalRoot().AndReturn('proout') | 320 change_info.GetLocalRoot().AndReturn('proout') |
320 change_info.Save() | 321 change_info.Save() |
321 change_info.PrimeLint() | 322 change_info.PrimeLint() |
322 gcl.os.chdir('somewhere') | 323 gcl.os.chdir('somewhere') |
323 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" | 324 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" |
324 " submit a try. ***") | 325 " submit a try. ***") |
325 gcl.sys.stdout.write("\n") | 326 gcl.sys.stdout.write("\n") |
326 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | 327 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) |
327 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | 328 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True |
(...skipping 22 matching lines...) Expand all Loading... |
350 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) | 351 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
351 gcl.os.write(42, change_info.description) | 352 gcl.os.write(42, change_info.description) |
352 gcl.os.close(42) | 353 gcl.os.close(42) |
353 gcl.GetCodeReviewSetting('CC_LIST') | 354 gcl.GetCodeReviewSetting('CC_LIST') |
354 gcl.GetCodeReviewSetting('PRIVATE') | 355 gcl.GetCodeReviewSetting('PRIVATE') |
355 gcl.os.getcwd().AndReturn('somewhere') | 356 gcl.os.getcwd().AndReturn('somewhere') |
356 gcl.os.chdir(change_info.GetLocalRoot()) | 357 gcl.os.chdir(change_info.GetLocalRoot()) |
357 gcl.GenerateDiff(change_info.GetFileNames()) | 358 gcl.GenerateDiff(change_info.GetFileNames()) |
358 gcl.upload.RealMain( | 359 gcl.upload.RealMain( |
359 [ 'upload.py', '-y', '--server=https://my_server', '--server=a', | 360 [ 'upload.py', '-y', '--server=https://my_server', '--server=a', |
360 '--file=descfile'], | 361 '--description_file=descfile', '--message=deescription'], |
361 change_info.patch).AndReturn(("1", "2")) | 362 change_info.patch).AndReturn(("1", "2")) |
362 gcl.os.remove('descfile') | 363 gcl.os.remove('descfile') |
363 change_info.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=1) | 364 change_info.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=1) |
364 gcl.os.chdir('somewhere') | 365 gcl.os.chdir('somewhere') |
365 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" | 366 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" |
366 " submit a try. ***") | 367 " submit a try. ***") |
367 gcl.sys.stdout.write("\n") | 368 gcl.sys.stdout.write("\n") |
368 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | 369 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) |
369 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | 370 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True |
370 ).AndReturn(change_info) | 371 ).AndReturn(change_info) |
(...skipping 19 matching lines...) Expand all Loading... |
390 output = presubmit_support.PresubmitOutput() | 391 output = presubmit_support.PresubmitOutput() |
391 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) | 392 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) |
392 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) | 393 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
393 gcl.os.write(42, change_info.description) | 394 gcl.os.write(42, change_info.description) |
394 gcl.os.close(42) | 395 gcl.os.close(42) |
395 gcl.GetCodeReviewSetting('CC_LIST') | 396 gcl.GetCodeReviewSetting('CC_LIST') |
396 gcl.GetCodeReviewSetting('PRIVATE') | 397 gcl.GetCodeReviewSetting('PRIVATE') |
397 gcl.os.getcwd().AndReturn('somewhere') | 398 gcl.os.getcwd().AndReturn('somewhere') |
398 gcl.os.chdir(change_info.GetLocalRoot()) | 399 gcl.os.chdir(change_info.GetLocalRoot()) |
399 gcl.GenerateDiff(change_info.GetFileNames()) | 400 gcl.GenerateDiff(change_info.GetFileNames()) |
400 gcl.upload.RealMain( | 401 gcl.upload.RealMain(['upload.py', '-y', '--server=https://my_server', |
401 ['upload.py', '-y', '--server=https://my_server', "--file=descfile"], | 402 "--description_file=descfile", |
402 change_info.patch).AndReturn(("1", "2")) | 403 "--message=deescription"], change_info.patch).AndReturn(("1", "2")) |
403 gcl.os.remove('descfile') | 404 gcl.os.remove('descfile') |
404 change_info.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=1) | 405 change_info.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=1) |
405 gcl.os.chdir('somewhere') | 406 gcl.os.chdir('somewhere') |
406 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" | 407 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" |
407 " submit a try. ***") | 408 " submit a try. ***") |
408 gcl.sys.stdout.write("\n") | 409 gcl.sys.stdout.write("\n") |
409 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | 410 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) |
410 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | 411 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True |
411 ).AndReturn(change_info) | 412 ).AndReturn(change_info) |
412 self.mox.ReplayAll() | 413 self.mox.ReplayAll() |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 files = [item[1] for item in change_info.files] | 448 files = [item[1] for item in change_info.files] |
448 output = presubmit_support.PresubmitOutput() | 449 output = presubmit_support.PresubmitOutput() |
449 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) | 450 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) |
450 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') | 451 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
451 gcl.os.getcwd().AndReturn('somewhere') | 452 gcl.os.getcwd().AndReturn('somewhere') |
452 change_info.GetFiles().AndReturn(change_info.files) | 453 change_info.GetFiles().AndReturn(change_info.files) |
453 change_info.GetFileNames().AndReturn(files) | 454 change_info.GetFileNames().AndReturn(files) |
454 change_info.GetLocalRoot().AndReturn('proout') | 455 change_info.GetLocalRoot().AndReturn('proout') |
455 gcl.os.chdir('proout') | 456 gcl.os.chdir('proout') |
456 gcl.GenerateDiff(files) | 457 gcl.GenerateDiff(files) |
457 gcl.upload.RealMain( | 458 gcl.upload.RealMain(['upload.py', '-y', '--server=https://my_server', |
458 [ 'upload.py', '-y', '--server=https://my_server', | 459 '--reviewers=georges@example.com', |
459 '--reviewers=georges@example.com', '--issue=1'], | 460 '--message=\'\'', '--issue=1'], |
460 change_info.patch).AndReturn(("1", "2")) | 461 change_info.patch).AndReturn(("1", "2")) |
461 change_info.Save() | 462 change_info.Save() |
462 change_info.PrimeLint() | 463 change_info.PrimeLint() |
463 gcl.os.chdir('somewhere') | 464 gcl.os.chdir('somewhere') |
464 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" | 465 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" |
465 " submit a try. ***") | 466 " submit a try. ***") |
466 gcl.sys.stdout.write("\n") | 467 gcl.sys.stdout.write("\n") |
467 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | 468 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) |
468 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | 469 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True |
469 ).AndReturn(change_info) | 470 ).AndReturn(change_info) |
470 self.mox.ReplayAll() | 471 self.mox.ReplayAll() |
471 | 472 |
472 gcl.CMDupload(['naame']) | 473 gcl.CMDupload(['naame']) |
473 self.checkstdout('*** Upload does not submit a try; use gcl try to submit ' | 474 self.checkstdout('*** Upload does not submit a try; use gcl try to submit ' |
474 'a try. ***\n' | 475 'a try. ***\n' |
475 '*** Upload does not submit a try; use gcl try to submit a try. ***\n') | 476 '*** Upload does not submit a try; use gcl try to submit a try. ***\n') |
476 | 477 |
477 def testSuggestReviewers(self): | 478 def testSuggestReviewers(self): |
478 change_info = self.fakeChange() | 479 change_info = self.fakeChange() |
479 output = presubmit_support.PresubmitOutput() | 480 output = presubmit_support.PresubmitOutput() |
480 output.reviewers = ['foo@example.com', 'bar@example.com'] | 481 output.reviewers = ['foo@example.com', 'bar@example.com'] |
481 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) | 482 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) |
482 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') | 483 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
483 gcl.os.getcwd().AndReturn('somewhere') | 484 gcl.os.getcwd().AndReturn('somewhere') |
484 gcl.os.chdir('proout') | 485 gcl.os.chdir('proout') |
485 gcl.GenerateDiff(change_info.GetFileNames()) | 486 gcl.GenerateDiff(change_info.GetFileNames()) |
486 gcl.upload.RealMain( | 487 gcl.upload.RealMain(['upload.py', '-y', '--server=https://my_server', |
487 [ 'upload.py', '-y', '--server=https://my_server', | 488 '--reviewers=foo@example.com,bar@example.com', |
488 '--reviewers=foo@example.com,bar@example.com', '--issue=1'], | 489 '--message=\'\'', '--issue=1'], |
489 change_info.patch).AndReturn(("1", "2")) | 490 change_info.patch).AndReturn(("1", "2")) |
490 change_info.Save() | 491 change_info.Save() |
491 change_info.PrimeLint() | 492 change_info.PrimeLint() |
492 gcl.os.chdir('somewhere') | 493 gcl.os.chdir('somewhere') |
493 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" | 494 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" |
494 " submit a try. ***") | 495 " submit a try. ***") |
495 gcl.sys.stdout.write("\n") | 496 gcl.sys.stdout.write("\n") |
496 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | 497 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) |
497 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | 498 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True |
498 ).AndReturn(change_info) | 499 ).AndReturn(change_info) |
499 self.mox.ReplayAll() | 500 self.mox.ReplayAll() |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 self.assertEquals(change_info.description, | 585 self.assertEquals(change_info.description, |
585 'deescription\n\nCommitted: https://view/12345') | 586 'deescription\n\nCommitted: https://view/12345') |
586 # pylint: disable=W0212 | 587 # pylint: disable=W0212 |
587 self.assertTrue(change_info._deleted) | 588 self.assertTrue(change_info._deleted) |
588 self.assertTrue(change_info._closed) | 589 self.assertTrue(change_info._closed) |
589 | 590 |
590 | 591 |
591 if __name__ == '__main__': | 592 if __name__ == '__main__': |
592 import unittest | 593 import unittest |
593 unittest.main() | 594 unittest.main() |
OLD | NEW |