OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 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 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 change_info.description = 'deescription\n\nR=foo@bar.com', | 302 change_info.description = 'deescription\n\nR=foo@bar.com', |
303 change_info.files = [('A', 'aa'), ('M', 'bb')] | 303 change_info.files = [('A', 'aa'), ('M', 'bb')] |
304 change_info.patch = None | 304 change_info.patch = None |
305 change_info.rietveld = 'my_server' | 305 change_info.rietveld = 'my_server' |
306 files = [item[1] for item in change_info.files] | 306 files = [item[1] for item in change_info.files] |
307 output = presubmit_support.PresubmitOutput() | 307 output = presubmit_support.PresubmitOutput() |
308 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) | 308 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) |
309 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') | 309 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
310 gcl.os.getcwd().AndReturn('somewhere') | 310 gcl.os.getcwd().AndReturn('somewhere') |
311 change_info.GetFiles().AndReturn(change_info.files) | 311 change_info.GetFiles().AndReturn(change_info.files) |
312 change_info.GetLocalRoot().AndReturn('proout') | |
313 gcl.os.chdir('proout') | 312 gcl.os.chdir('proout') |
314 change_info.GetFileNames().AndReturn(files) | 313 change_info.GetFileNames().AndReturn(files) |
315 gcl.GenerateDiff(files) | 314 gcl.GenerateDiff(files) |
316 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', | 315 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', |
317 '-r', 'georges@example.com', | 316 '-r', 'georges@example.com', |
318 '--message=\'\'', '--issue=1'], | 317 '--message=\'\'', '--issue=1'], |
319 change_info.patch).AndReturn(("1", | 318 change_info.patch).AndReturn(("1", |
320 "2")) | 319 "2")) |
| 320 change_info.GetLocalRoot().AndReturn('proout') |
321 change_info.Save() | 321 change_info.Save() |
322 change_info.PrimeLint() | 322 change_info.PrimeLint() |
323 gcl.os.chdir('somewhere') | 323 gcl.os.chdir('somewhere') |
324 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" |
325 " submit a try. ***") | 325 " submit a try. ***") |
326 gcl.sys.stdout.write("\n") | 326 gcl.sys.stdout.write("\n") |
327 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) | 327 gcl.GetRepositoryRoot().AndReturn(self.fake_root_dir) |
328 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True | 328 gcl.ChangeInfo.Load('naame', self.fake_root_dir, True, True |
329 ).AndReturn(change_info) | 329 ).AndReturn(change_info) |
330 self.mox.ReplayAll() | 330 self.mox.ReplayAll() |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 change_info.files = [('A', 'aa'), ('M', 'bb')] | 443 change_info.files = [('A', 'aa'), ('M', 'bb')] |
444 change_info.patch = None | 444 change_info.patch = None |
445 change_info.rietveld = 'my_server' | 445 change_info.rietveld = 'my_server' |
446 change_info.reviewers = ['georges@example.com'] | 446 change_info.reviewers = ['georges@example.com'] |
447 files = [item[1] for item in change_info.files] | 447 files = [item[1] for item in change_info.files] |
448 output = presubmit_support.PresubmitOutput() | 448 output = presubmit_support.PresubmitOutput() |
449 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) | 449 gcl.DoPresubmitChecks(change_info, False, True).AndReturn(output) |
450 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') | 450 #gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
451 gcl.os.getcwd().AndReturn('somewhere') | 451 gcl.os.getcwd().AndReturn('somewhere') |
452 change_info.GetFiles().AndReturn(change_info.files) | 452 change_info.GetFiles().AndReturn(change_info.files) |
| 453 change_info.GetFileNames().AndReturn(files) |
453 change_info.GetLocalRoot().AndReturn('proout') | 454 change_info.GetLocalRoot().AndReturn('proout') |
454 gcl.os.chdir('proout') | 455 gcl.os.chdir('proout') |
455 change_info.GetFileNames().AndReturn(files) | |
456 gcl.GenerateDiff(files) | 456 gcl.GenerateDiff(files) |
457 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', | 457 gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', |
458 '--reviewers=georges@example.com', | 458 '--reviewers=georges@example.com', |
459 '--message=\'\'', '--issue=1'], | 459 '--message=\'\'', '--issue=1'], |
460 change_info.patch).AndReturn(("1", "2")) | 460 change_info.patch).AndReturn(("1", "2")) |
461 change_info.Save() | 461 change_info.Save() |
462 change_info.PrimeLint() | 462 change_info.PrimeLint() |
463 gcl.os.chdir('somewhere') | 463 gcl.os.chdir('somewhere') |
464 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" | 464 gcl.sys.stdout.write("*** Upload does not submit a try; use gcl try to" |
465 " submit a try. ***") | 465 " submit a try. ***") |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
522 gcl.OptionallyDoPresubmitChecks(change_info, True, []).AndReturn(output) | 522 gcl.OptionallyDoPresubmitChecks(change_info, True, []).AndReturn(output) |
523 | 523 |
524 def mockCommit(self, change_info, commit_message, shell_output): | 524 def mockCommit(self, change_info, commit_message, shell_output): |
525 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'commit')) | 525 gcl.tempfile.mkstemp(text=True).AndReturn((42, 'commit')) |
526 gcl.os.write(42, commit_message) | 526 gcl.os.write(42, commit_message) |
527 gcl.os.close(42) | 527 gcl.os.close(42) |
528 gcl.tempfile.mkstemp(text=True).AndReturn((43, 'files')) | 528 gcl.tempfile.mkstemp(text=True).AndReturn((43, 'files')) |
529 gcl.os.write(43, '\n'.join(change_info.GetFileNames())) | 529 gcl.os.write(43, '\n'.join(change_info.GetFileNames())) |
530 gcl.os.close(43) | 530 gcl.os.close(43) |
531 | 531 |
532 gcl.os.getcwd().AndReturn('prev') | |
533 gcl.os.chdir(change_info.GetLocalRoot()) | |
534 gcl.RunShell(['svn', 'commit', '--file=commit', '--targets=files'], | 532 gcl.RunShell(['svn', 'commit', '--file=commit', '--targets=files'], |
535 True).AndReturn(shell_output) | 533 True).AndReturn(shell_output) |
536 if 'Committed' in shell_output: | 534 if 'Committed' in shell_output: |
537 self.mox.StubOutWithMock(gcl, 'GetCodeReviewSetting') | 535 self.mox.StubOutWithMock(gcl, 'GetCodeReviewSetting') |
538 gcl.GetCodeReviewSetting('VIEW_VC').AndReturn('http://view/') | 536 gcl.GetCodeReviewSetting('VIEW_VC').AndReturn('http://view/') |
539 | 537 |
540 gcl.os.remove('commit') | 538 gcl.os.remove('commit') |
541 gcl.os.remove('files') | 539 gcl.os.remove('files') |
542 gcl.os.chdir('prev') | |
543 | 540 |
544 def testPresubmitEmpty(self): | 541 def testPresubmitEmpty(self): |
545 self.mockLoad(files=[]) | 542 self.mockLoad(files=[]) |
546 self.mox.ReplayAll() | 543 self.mox.ReplayAll() |
547 | 544 |
548 retval = gcl.CMDcommit(['naame']) | 545 retval = gcl.CMDcommit(['naame']) |
549 | 546 |
550 self.assertEquals(retval, 1) | 547 self.assertEquals(retval, 1) |
551 | 548 |
552 def testPresubmitFails(self): | 549 def testPresubmitFails(self): |
553 change_info = self.mockLoad() | 550 change_info = self.mockLoad() |
554 self.mockPresubmit(change_info, fail=True) | 551 self.mockPresubmit(change_info, fail=True) |
555 self.mox.ReplayAll() | 552 self.mox.ReplayAll() |
556 | 553 |
557 retval = gcl.CMDcommit(['naame']) | 554 retval = gcl.CMDcommit(['naame']) |
558 | 555 |
559 self.assertEquals(retval, 1) | 556 self.assertEquals(retval, 1) |
560 | 557 |
561 def testPresubmitSucceeds(self): | 558 def testPresubmitSucceeds(self): |
562 change_info = self.mockLoad() | 559 change_info = self.mockLoad() |
563 self.mockPresubmit(change_info, fail=False) | 560 self.mockPresubmit(change_info, fail=False) |
564 self.mockCommit(change_info, 'deescription\nReview URL: http://my_server/1', | 561 self.mockCommit(change_info, 'deescription\nReview URL: http://my_server/1', |
565 '') | 562 '') |
566 | |
567 self.mox.ReplayAll() | 563 self.mox.ReplayAll() |
568 | 564 |
569 retval = gcl.CMDcommit(['naame']) | 565 retval = gcl.CMDcommit(['naame']) |
570 | 566 |
571 self.assertEquals(retval, 0) | 567 self.assertEquals(retval, 0) |
572 self.assertEquals(change_info.description, 'deescription') | 568 self.assertEquals(change_info.description, 'deescription') |
573 # pylint: disable=W0212 | 569 # pylint: disable=W0212 |
574 self.assertFalse(change_info._deleted) | 570 self.assertFalse(change_info._deleted) |
575 self.assertFalse(change_info._closed) | 571 self.assertFalse(change_info._closed) |
576 | 572 |
(...skipping 10 matching lines...) Expand all Loading... |
587 self.assertEquals(change_info.description, | 583 self.assertEquals(change_info.description, |
588 'deescription\n\nCommitted: http://view/12345') | 584 'deescription\n\nCommitted: http://view/12345') |
589 # pylint: disable=W0212 | 585 # pylint: disable=W0212 |
590 self.assertTrue(change_info._deleted) | 586 self.assertTrue(change_info._deleted) |
591 self.assertTrue(change_info._closed) | 587 self.assertTrue(change_info._closed) |
592 | 588 |
593 | 589 |
594 if __name__ == '__main__': | 590 if __name__ == '__main__': |
595 import unittest | 591 import unittest |
596 unittest.main() | 592 unittest.main() |
OLD | NEW |