| Index: tests/gcl_unittest.py
|
| diff --git a/tests/gcl_unittest.py b/tests/gcl_unittest.py
|
| index 4c8382f535c651a2d536e2eea41ad1090723b682..f731bd596044e13d29d4243fdc966be14461c85c 100755
|
| --- a/tests/gcl_unittest.py
|
| +++ b/tests/gcl_unittest.py
|
| @@ -19,13 +19,25 @@ class GclTestsBase(super_mox.SuperMoxTestBase):
|
| super_mox.SuperMoxTestBase.setUp(self)
|
| self.mox.StubOutWithMock(gcl, 'RunShell')
|
| self.mox.StubOutWithMock(gcl.gclient, 'CaptureSVNInfo')
|
| - self.mox.StubOutWithMock(gcl, 'os')
|
| self.mox.StubOutWithMock(gcl.os, 'getcwd')
|
| + self.mox.StubOutWithMock(gcl.os, 'chdir')
|
| + self.mox.StubOutWithMock(gcl.os, 'close')
|
| + self.mox.StubOutWithMock(gcl.os, 'remove')
|
| + self.mox.StubOutWithMock(gcl.os, 'write')
|
| + self.mox.StubOutWithMock(gcl.os.path, 'exists')
|
| + self.mox.StubOutWithMock(gcl.os.path, 'isdir')
|
| + self.mox.StubOutWithMock(gcl.os.path, 'isfile')
|
| + self.mox.StubOutWithMock(gcl, 'tempfile')
|
| + self.mox.StubOutWithMock(gcl.upload, 'RealMain')
|
| + # These are not tested.
|
| + self.mox.StubOutWithMock(gcl, 'ReadFile')
|
| + self.mox.StubOutWithMock(gcl, 'WriteFile')
|
|
|
|
|
| class GclUnittest(GclTestsBase):
|
| """General gcl.py tests."""
|
| def testMembersChanged(self):
|
| + self.mox.ReplayAll()
|
| members = [
|
| 'CODEREVIEW_SETTINGS', 'CODEREVIEW_SETTINGS_FILE', 'CPP_EXTENSIONS',
|
| 'Change', 'ChangeInfo', 'Changes', 'Commit', 'DoPresubmitChecks',
|
| @@ -86,14 +98,15 @@ class ChangeInfoUnittest(GclTestsBase):
|
| def setUp(self):
|
| GclTestsBase.setUp(self)
|
| self.mox.StubOutWithMock(gcl, 'GetChangelistInfoFile')
|
| - self.mox.StubOutWithMock(gcl.os.path, 'exists')
|
| - self.mox.StubOutWithMock(gcl, 'ReadFile')
|
| - self.mox.StubOutWithMock(gcl, 'WriteFile')
|
| + self.mox.StubOutWithMock(gcl, 'GetRepositoryRoot')
|
|
|
| def testChangeInfoMembers(self):
|
| + gcl.GetRepositoryRoot().AndReturn('prout')
|
| + self.mox.ReplayAll()
|
| members = [
|
| - 'CloseIssue', 'Delete', 'FileList', 'Load', 'MissingTests', 'Save',
|
| - 'UpdateRietveldDescription', 'description', 'files', 'issue', 'name',
|
| + 'CloseIssue', 'Delete', 'GetFiles', 'GetFileNames', 'GetLocalRoot',
|
| + 'Load', 'MissingTests', 'Save', 'UpdateRietveldDescription',
|
| + 'description', 'issue', 'name',
|
| 'patch', 'patchset',
|
| ]
|
| # If this test fails, you should add the relevant test.
|
| @@ -101,15 +114,17 @@ class ChangeInfoUnittest(GclTestsBase):
|
|
|
| def testChangeInfoBase(self):
|
| files = [('M', 'foo'), ('A', 'bar')]
|
| + gcl.GetRepositoryRoot().AndReturn('prout')
|
| self.mox.ReplayAll()
|
| o = gcl.ChangeInfo('name2', '42', '53', 'description2', files)
|
| self.assertEquals(o.name, 'name2')
|
| self.assertEquals(o.issue, 42)
|
| self.assertEquals(o.patchset, 53)
|
| self.assertEquals(o.description, 'description2')
|
| - self.assertEquals(o.files, files)
|
| self.assertEquals(o.patch, None)
|
| - self.assertEquals(o.FileList(), ['foo', 'bar'])
|
| + self.assertEquals(o.GetFileNames(), ['foo', 'bar'])
|
| + self.assertEquals(o.GetFiles(), files)
|
| + self.assertEquals(o.GetLocalRoot(), 'prout')
|
|
|
| def testLoadWithIssue(self):
|
| description = ["This is some description.", "force an extra separator."]
|
| @@ -117,6 +132,7 @@ class ChangeInfoUnittest(GclTestsBase):
|
| gcl.os.path.exists('bleeeh').AndReturn(True)
|
| gcl.ReadFile('bleeeh').AndReturn(
|
| gcl.ChangeInfo._SEPARATOR.join(["42,53", "G b.cc"] + description))
|
| + gcl.GetRepositoryRoot().AndReturn('prout')
|
| self.mox.ReplayAll()
|
|
|
| change_info = gcl.ChangeInfo.Load('bleh', True, False)
|
| @@ -125,13 +141,14 @@ class ChangeInfoUnittest(GclTestsBase):
|
| self.assertEquals(change_info.patchset, 53)
|
| self.assertEquals(change_info.description,
|
| gcl.ChangeInfo._SEPARATOR.join(description))
|
| - self.assertEquals(change_info.files, [('G ', 'b.cc')])
|
| + self.assertEquals(change_info.GetFiles(), [('G ', 'b.cc')])
|
|
|
| def testLoadEmpty(self):
|
| gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh')
|
| gcl.os.path.exists('bleeeh').AndReturn(True)
|
| gcl.ReadFile('bleeeh').AndReturn(
|
| gcl.ChangeInfo._SEPARATOR.join(["", "", ""]))
|
| + gcl.GetRepositoryRoot().AndReturn('prout')
|
| self.mox.ReplayAll()
|
|
|
| change_info = gcl.ChangeInfo.Load('bleh', True, False)
|
| @@ -139,11 +156,12 @@ class ChangeInfoUnittest(GclTestsBase):
|
| self.assertEquals(change_info.issue, 0)
|
| self.assertEquals(change_info.patchset, 0)
|
| self.assertEquals(change_info.description, "")
|
| - self.assertEquals(change_info.files, [])
|
| + self.assertEquals(change_info.GetFiles(), [])
|
|
|
| def testSaveEmpty(self):
|
| gcl.GetChangelistInfoFile('').AndReturn('foo')
|
| gcl.WriteFile('foo', gcl.ChangeInfo._SEPARATOR.join(['0, 0', '', '']))
|
| + gcl.GetRepositoryRoot().AndReturn('prout')
|
| self.mox.ReplayAll()
|
| change_info = gcl.ChangeInfo('', 0, 0, '', None)
|
| change_info.Save()
|
| @@ -152,12 +170,6 @@ class ChangeInfoUnittest(GclTestsBase):
|
| class UploadCLUnittest(GclTestsBase):
|
| def setUp(self):
|
| GclTestsBase.setUp(self)
|
| - self.mox.StubOutWithMock(gcl.os, 'chdir')
|
| - self.mox.StubOutWithMock(gcl.os, 'close')
|
| - self.mox.StubOutWithMock(gcl.os, 'remove')
|
| - self.mox.StubOutWithMock(gcl.os, 'write')
|
| - self.mox.StubOutWithMock(gcl, 'tempfile')
|
| - self.mox.StubOutWithMock(gcl.upload, 'RealMain')
|
| self.mox.StubOutWithMock(gcl, 'DoPresubmitChecks')
|
| self.mox.StubOutWithMock(gcl, 'GenerateDiff')
|
| self.mox.StubOutWithMock(gcl, 'GetCodeReviewSetting')
|
| @@ -166,16 +178,23 @@ class UploadCLUnittest(GclTestsBase):
|
| self.mox.StubOutWithMock(gcl, 'TryChange')
|
|
|
| def testNew(self):
|
| - change_info = gcl.ChangeInfo('naame', 1, 0, 'deescription',
|
| - ['aa', 'bb'])
|
| - self.mox.StubOutWithMock(change_info, 'Save')
|
| + change_info = self.mox.CreateMock(gcl.ChangeInfo)
|
| + change_info.name = 'naame'
|
| + change_info.issue = 1
|
| + change_info.patchset = 0
|
| + change_info.description = 'deescription',
|
| + change_info.files = [('A', 'aa'), ('M', 'bb')]
|
| + change_info.patch = None
|
| + files = [item[1] for item in change_info.files]
|
| args = ['--foo=bar']
|
| - change_info.Save()
|
| gcl.DoPresubmitChecks(change_info, False, True).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())
|
| + change_info.GetFiles().AndReturn(change_info.files)
|
| + change_info.GetLocalRoot().AndReturn('proout')
|
| + gcl.os.chdir('proout')
|
| + change_info.GetFileNames().AndReturn(files)
|
| + gcl.GenerateDiff(files)
|
| gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--foo=bar',
|
| "--message=''", '--issue=1'], change_info.patch).AndReturn(("1",
|
| "2"))
|
| @@ -183,13 +202,15 @@ class UploadCLUnittest(GclTestsBase):
|
| gcl.GetCodeReviewSetting('TRY_ON_UPLOAD').AndReturn('True')
|
| gcl.TryChange(change_info, [], swallow_exception=True)
|
| gcl.os.chdir('somewhere')
|
| + change_info.Save()
|
| self.mox.ReplayAll()
|
| +
|
| gcl.UploadCL(change_info, args)
|
|
|
| def testServerOverride(self):
|
| change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription',
|
| - ['aa', 'bb'])
|
| - change_info.Save = self.mox.CreateMockAnything()
|
| + [('A', 'aa'), ('M', 'bb')])
|
| + self.mox.StubOutWithMock(change_info, 'Save')
|
| args = ['--server=a', '--no_watchlists']
|
| change_info.Save()
|
| gcl.DoPresubmitChecks(change_info, False, True).AndReturn(True)
|
| @@ -199,8 +220,8 @@ class UploadCLUnittest(GclTestsBase):
|
| 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.os.chdir(change_info.GetLocalRoot())
|
| + gcl.GenerateDiff(change_info.GetFileNames())
|
| gcl.upload.RealMain(['upload.py', '-y', '--server=my_server', '--server=a',
|
| "--description_file=descfile",
|
| "--message=deescription"], change_info.patch).AndReturn(("1", "2"))
|
| @@ -209,11 +230,13 @@ class UploadCLUnittest(GclTestsBase):
|
| gcl.os.chdir('somewhere')
|
| self.mox.ReplayAll()
|
|
|
| + # To balance out the call in gcl.ChangeInfo.__init__().
|
| + gcl.GetRepositoryRoot()
|
| gcl.UploadCL(change_info, args)
|
|
|
| def testNoTry(self):
|
| change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription',
|
| - ['aa', 'bb'])
|
| + [('A', 'aa'), ('M', 'bb')])
|
| change_info.Save = self.mox.CreateMockAnything()
|
| args = ['--no-try', '--no_watchlists']
|
| change_info.Save()
|
| @@ -224,8 +247,8 @@ class UploadCLUnittest(GclTestsBase):
|
| 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.os.chdir(change_info.GetLocalRoot())
|
| + gcl.GenerateDiff(change_info.GetFileNames())
|
| gcl.upload.RealMain(['upload.py', '-y', '--server=my_server',
|
| "--description_file=descfile",
|
| "--message=deescription"], change_info.patch).AndReturn(("1", "2"))
|
| @@ -234,6 +257,8 @@ class UploadCLUnittest(GclTestsBase):
|
| gcl.os.chdir('somewhere')
|
| self.mox.ReplayAll()
|
|
|
| + # To balance out the call in gcl.ChangeInfo.__init__().
|
| + gcl.GetRepositoryRoot()
|
| gcl.UploadCL(change_info, args)
|
|
|
| def testNormal(self):
|
| @@ -249,8 +274,8 @@ class UploadCLUnittest(GclTestsBase):
|
| 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.os.chdir(change_info.GetLocalRoot())
|
| + gcl.GenerateDiff(change_info.GetFileNames())
|
| gcl.upload.RealMain(['upload.py', '-y', '--server=my_server',
|
| "--description_file=descfile",
|
| "--message=deescription"], change_info.patch).AndReturn(("1", "2"))
|
| @@ -261,6 +286,8 @@ class UploadCLUnittest(GclTestsBase):
|
| gcl.os.chdir('somewhere')
|
| self.mox.ReplayAll()
|
|
|
| + # To balance out the call in gcl.ChangeInfo.__init__().
|
| + gcl.GetRepositoryRoot()
|
| gcl.UploadCL(change_info, args)
|
| self.assertEquals(change_info.issue, 1)
|
| self.assertEquals(change_info.patchset, 2)
|
|
|