Index: tests/gcl_unittest.py |
diff --git a/tests/gcl_unittest.py b/tests/gcl_unittest.py |
index 955f74d1652276d137e9a56d02c9cb9379da57bd..3517b7ece50675f4306c7d02b26254ff8ea2226f 100755 |
--- a/tests/gcl_unittest.py |
+++ b/tests/gcl_unittest.py |
@@ -107,5 +107,160 @@ class ChangeInfoUnittest(GclTestsBase): |
self.assertEquals(o.FileList(), ['foo', 'bar']) |
+class UploadCLUnittest(GclTestsBase): |
+ def setUp(self): |
+ GclTestsBase.setUp(self) |
+ self.mox = mox.Mox() |
+ self._os_chdir = gcl.os.chdir |
+ gcl.os.chdir = self.mox.CreateMockAnything() |
+ self._os_close = gcl.os.close |
+ gcl.os.close = self.mox.CreateMockAnything() |
+ self._os_getcwd = gcl.os.getcwd |
+ gcl.os.getcwd = self.mox.CreateMockAnything() |
+ self._os_remove = gcl.os.remove |
+ gcl.os.remove = self.mox.CreateMockAnything() |
+ self._os_write = gcl.os.write |
+ gcl.os.write = self.mox.CreateMockAnything() |
+ self._tempfile = gcl.tempfile |
+ gcl.tempfile = self.mox.CreateMockAnything() |
+ self._upload_RealMain = gcl.upload.RealMain |
+ gcl.upload.RealMain = self.mox.CreateMockAnything() |
+ self._DoPresubmitChecks = gcl.DoPresubmitChecks |
+ gcl.DoPresubmitChecks = self.mox.CreateMockAnything() |
+ self._GenerateDiff = gcl.GenerateDiff |
+ gcl.GenerateDiff = self.mox.CreateMockAnything() |
+ self._GetCodeReviewSetting = gcl.GetCodeReviewSetting |
+ gcl.GetCodeReviewSetting = self.mox.CreateMockAnything() |
+ self._GetRepositoryRoot = gcl.GetRepositoryRoot |
+ gcl.GetRepositoryRoot = self.mox.CreateMockAnything() |
+ self._SendToRietveld = gcl.SendToRietveld |
+ gcl.SendToRietveld = self.mox.CreateMockAnything() |
+ self._TryChange = gcl.TryChange |
+ gcl.TryChange = self.mox.CreateMockAnything() |
+ |
+ def tearDown(self): |
+ GclTestsBase.tearDown(self) |
+ gcl.os.chdir = self._os_chdir |
+ gcl.os.close = self._os_close |
+ gcl.os.getcwd = self._os_getcwd |
+ gcl.os.remove = self._os_remove |
+ gcl.os.write = self._os_write |
+ gcl.tempfile = self._tempfile |
+ gcl.upload.RealMain = self._upload_RealMain |
+ gcl.DoPresubmitChecks = self._DoPresubmitChecks |
+ gcl.GenerateDiff = self._GenerateDiff |
+ gcl.GetCodeReviewSetting = self._GetCodeReviewSetting |
+ gcl.GetRepositoryRoot = self._GetRepositoryRoot |
+ gcl.SendToRietveld = self._SendToRietveld |
+ gcl.TryChange = self._TryChange |
+ |
+ def testNew(self): |
+ change_info = gcl.ChangeInfo('naame', 'iissue', 'deescription', |
+ ['aa', 'bb']) |
+ change_info.Save = self.mox.CreateMockAnything() |
+ args = ['--foo=bar'] |
+ change_info.Save() |
+ gcl.DoPresubmitChecks(change_info, committing=False).AndReturn(True) |
+ gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
+ gcl.os.getcwd().AndReturn('somewhere') |
+ gcl.os.chdir(gcl.GetRepositoryRoot().AndReturn(None)) |
+ gcl.GenerateDiff(change_info.FileList()) |
+ gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--foo=bar', |
+ "--message=''", '--issue=iissue'], change_info.patch).AndReturn(("1", |
+ "2")) |
+ gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
+ gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') |
+ gcl.TryChange(change_info, |
+ ['--issue', '1', '--patchset', '2'], |
+ swallow_exception=True) |
+ gcl.os.chdir('somewhere') |
+ self.mox.ReplayAll() |
+ gcl.UploadCL(change_info, args) |
+ self.mox.VerifyAll() |
+ |
+ def testServerOverride(self): |
+ change_info = gcl.ChangeInfo('naame', '', 'deescription', |
+ ['aa', 'bb']) |
+ change_info.Save = self.mox.CreateMockAnything() |
+ args = ['--server=a'] |
+ change_info.Save() |
+ gcl.DoPresubmitChecks(change_info, committing=False).AndReturn(True) |
+ gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
+ gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
+ gcl.os.write(42, change_info.description) |
+ gcl.os.close(42) |
+ gcl.GetCodeReviewSetting('CC_LIST') |
+ gcl.os.getcwd().AndReturn('somewhere') |
+ gcl.os.chdir(gcl.GetRepositoryRoot().AndReturn(None)) |
+ gcl.GenerateDiff(change_info.FileList()) |
+ gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--server=a', |
+ "--description_file=descfile", |
+ "--message=deescription"], change_info.patch).AndReturn(("1", "2")) |
+ gcl.os.remove('descfile') |
+ gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
+ #gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') |
+ #gcl.TryChange(change_info, |
+ # ['--issue', '1', '--patchset', '2'], |
+ # swallow_exception=True) |
+ gcl.os.chdir('somewhere') |
+ self.mox.ReplayAll() |
+ gcl.UploadCL(change_info, args) |
+ self.mox.VerifyAll() |
+ |
+ def testNoTry(self): |
+ change_info = gcl.ChangeInfo('naame', '', 'deescription', |
+ ['aa', 'bb']) |
+ change_info.Save = self.mox.CreateMockAnything() |
+ args = ['--no-try'] |
+ change_info.Save() |
+ gcl.DoPresubmitChecks(change_info, committing=False).AndReturn(True) |
+ gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
+ gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
+ gcl.os.write(42, change_info.description) |
+ gcl.os.close(42) |
+ gcl.GetCodeReviewSetting('CC_LIST') |
+ gcl.os.getcwd().AndReturn('somewhere') |
+ gcl.os.chdir(gcl.GetRepositoryRoot().AndReturn(None)) |
+ gcl.GenerateDiff(change_info.FileList()) |
+ gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', |
+ "--description_file=descfile", |
+ "--message=deescription"], change_info.patch).AndReturn(("1", "2")) |
+ gcl.os.remove('descfile') |
+ gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
+ gcl.os.chdir('somewhere') |
+ self.mox.ReplayAll() |
+ gcl.UploadCL(change_info, args) |
+ self.mox.VerifyAll() |
+ |
+ def testNormal(self): |
+ change_info = gcl.ChangeInfo('naame', '', 'deescription', |
+ ['aa', 'bb']) |
+ change_info.Save = self.mox.CreateMockAnything() |
+ args = [] |
+ change_info.Save() |
+ gcl.DoPresubmitChecks(change_info, committing=False).AndReturn(True) |
+ gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('my_server') |
+ gcl.tempfile.mkstemp(text=True).AndReturn((42, 'descfile')) |
+ gcl.os.write(42, change_info.description) |
+ gcl.os.close(42) |
+ gcl.GetCodeReviewSetting('CC_LIST') |
+ gcl.os.getcwd().AndReturn('somewhere') |
+ gcl.os.chdir(gcl.GetRepositoryRoot().AndReturn(None)) |
+ gcl.GenerateDiff(change_info.FileList()) |
+ gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', |
+ "--description_file=descfile", |
+ "--message=deescription"], change_info.patch).AndReturn(("1", "2")) |
+ gcl.os.remove('descfile') |
+ gcl.SendToRietveld("/lint/issue%s_%s" % ('1', '2'), timeout=0.5) |
+ gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True') |
+ gcl.TryChange(change_info, |
+ ['--issue', '1', '--patchset', '2'], |
+ swallow_exception=True) |
+ gcl.os.chdir('somewhere') |
+ self.mox.ReplayAll() |
+ gcl.UploadCL(change_info, args) |
+ self.mox.VerifyAll() |
+ |
+ |
if __name__ == '__main__': |
unittest.main() |