Index: tests/gcl_unittest.py |
diff --git a/tests/gcl_unittest.py b/tests/gcl_unittest.py |
index dd499e4cc77947710a6d84db64470b6ba49bbfe0..2e9b3bea0efe67019c86eeb5341c21807d750e46 100755 |
--- a/tests/gcl_unittest.py |
+++ b/tests/gcl_unittest.py |
@@ -48,10 +48,10 @@ class GclUnittest(GclTestsBase): |
'GetFilesNotInCL', 'GetInfoDir', 'GetIssueDescription', |
'GetModifiedFiles', 'GetRepositoryRoot', |
'GetSVNFileProperty', 'Help', 'IGNORE_PATHS', 'IsSVNMoved', |
- 'Lint', 'LoadChangelistInfo', 'LoadChangelistInfoForMultiple', |
+ 'Lint', 'LoadChangelistInfoForMultiple', |
'MISSING_TEST_MSG', 'Opened', 'PresubmitCL', 'ReadFile', |
'REPOSITORY_ROOT', 'RunShell', |
- 'RunShellWithReturnCode', 'SEPARATOR', 'SendToRietveld', 'TryChange', |
+ 'RunShellWithReturnCode', 'SendToRietveld', 'TryChange', |
'UnknownFiles', 'UploadCL', 'Warn', 'WriteFile', |
'gclient', 'getpass', 'main', 'os', 'random', 're', |
'shutil', 'string', 'subprocess', 'sys', 'tempfile', |
@@ -95,25 +95,71 @@ class GclUnittest(GclTestsBase): |
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') |
+ |
def testChangeInfoMembers(self): |
members = [ |
- 'CloseIssue', 'Delete', 'FileList', 'MissingTests', 'Save', |
+ 'CloseIssue', 'Delete', 'FileList', 'Load', 'MissingTests', 'Save', |
'UpdateRietveldDescription', 'description', 'files', 'issue', 'name', |
- 'patch' |
+ 'patch', 'patchset', |
] |
# If this test fails, you should add the relevant test. |
- self.compareMembers(gcl.ChangeInfo(), members) |
+ self.compareMembers(gcl.ChangeInfo('', 0, 0, '', None), members) |
def testChangeInfoBase(self): |
files = [('M', 'foo'), ('A', 'bar')] |
- o = gcl.ChangeInfo('name2', 'issue2', 'description2', files) |
+ self.mox.ReplayAll() |
+ o = gcl.ChangeInfo('name2', '42', '53', 'description2', files) |
self.assertEquals(o.name, 'name2') |
- self.assertEquals(o.issue, 'issue2') |
+ 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']) |
+ def testLoadWithIssue(self): |
+ description = ["This is some description.", "force an extra separator."] |
+ gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh') |
+ gcl.os.path.exists('bleeeh').AndReturn(True) |
+ gcl.ReadFile('bleeeh').AndReturn( |
+ gcl.ChangeInfo._SEPARATOR.join(["42,53", "G b.cc"] + description)) |
+ self.mox.ReplayAll() |
+ |
+ change_info = gcl.ChangeInfo.Load('bleh', True, False) |
+ self.assertEquals(change_info.name, 'bleh') |
+ self.assertEquals(change_info.issue, 42) |
+ self.assertEquals(change_info.patchset, 53) |
+ self.assertEquals(change_info.description, |
+ gcl.ChangeInfo._SEPARATOR.join(description)) |
+ self.assertEquals(change_info.files, [('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(["", "", ""])) |
+ self.mox.ReplayAll() |
+ |
+ change_info = gcl.ChangeInfo.Load('bleh', True, False) |
+ self.assertEquals(change_info.name, 'bleh') |
+ self.assertEquals(change_info.issue, 0) |
+ self.assertEquals(change_info.patchset, 0) |
+ self.assertEquals(change_info.description, "") |
+ self.assertEquals(change_info.files, []) |
+ |
+ def testSaveEmpty(self): |
+ gcl.GetChangelistInfoFile('').AndReturn('foo') |
+ gcl.WriteFile('foo', gcl.ChangeInfo._SEPARATOR.join(['0, 0', '', ''])) |
+ self.mox.ReplayAll() |
+ change_info = gcl.ChangeInfo('', 0, 0, '', None) |
+ change_info.Save() |
+ |
class UploadCLUnittest(GclTestsBase): |
def setUp(self): |
@@ -132,9 +178,9 @@ class UploadCLUnittest(GclTestsBase): |
self.mox.StubOutWithMock(gcl, 'TryChange') |
def testNew(self): |
- change_info = gcl.ChangeInfo('naame', 'iissue', 'deescription', |
+ change_info = gcl.ChangeInfo('naame', 1, 0, 'deescription', |
['aa', 'bb']) |
- change_info.Save = self.mox.CreateMockAnything() |
+ self.mox.StubOutWithMock(change_info, 'Save') |
args = ['--foo=bar'] |
change_info.Save() |
gcl.DoPresubmitChecks(change_info, committing=False).AndReturn(True) |
@@ -143,19 +189,17 @@ class UploadCLUnittest(GclTestsBase): |
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")) |
+ "--message=''", '--issue=1'], 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.TryChange(change_info, [], swallow_exception=True) |
gcl.os.chdir('somewhere') |
self.mox.ReplayAll() |
gcl.UploadCL(change_info, args) |
def testServerOverride(self): |
- change_info = gcl.ChangeInfo('naame', '', 'deescription', |
+ change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', |
['aa', 'bb']) |
change_info.Save = self.mox.CreateMockAnything() |
args = ['--server=a'] |
@@ -179,7 +223,7 @@ class UploadCLUnittest(GclTestsBase): |
gcl.UploadCL(change_info, args) |
def testNoTry(self): |
- change_info = gcl.ChangeInfo('naame', '', 'deescription', |
+ change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', |
['aa', 'bb']) |
change_info.Save = self.mox.CreateMockAnything() |
args = ['--no-try'] |
@@ -203,7 +247,7 @@ class UploadCLUnittest(GclTestsBase): |
gcl.UploadCL(change_info, args) |
def testNormal(self): |
- change_info = gcl.ChangeInfo('naame', '', 'deescription', |
+ change_info = gcl.ChangeInfo('naame', 0, 0, 'deescription', |
['aa', 'bb']) |
self.mox.StubOutWithMock(change_info, 'Save') |
args = [] |
@@ -223,12 +267,13 @@ class UploadCLUnittest(GclTestsBase): |
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.TryChange(change_info, [], swallow_exception=True) |
gcl.os.chdir('somewhere') |
self.mox.ReplayAll() |
+ |
gcl.UploadCL(change_info, args) |
+ self.assertEquals(change_info.issue, 1) |
+ self.assertEquals(change_info.patchset, 2) |
if __name__ == '__main__': |