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) |