| 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 is too confused. | 8 # pylint: disable=E1103,E1101,E1120 |
| 9 # pylint: disable=E1101,E1103,E1120,W0212,W0403 | |
| 10 | 9 |
| 11 # Fixes include path. | 10 import os |
| 11 import sys |
| 12 |
| 13 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
| 14 |
| 12 from super_mox import mox, SuperMoxTestBase | 15 from super_mox import mox, SuperMoxTestBase |
| 13 | 16 |
| 14 import gcl | 17 import gcl |
| 15 import presubmit_support | 18 import presubmit_support |
| 16 | 19 |
| 17 | 20 |
| 18 class GclTestsBase(SuperMoxTestBase): | 21 class GclTestsBase(SuperMoxTestBase): |
| 19 """Setups and tear downs the mocks but doesn't test anything as-is.""" | 22 """Setups and tear downs the mocks but doesn't test anything as-is.""" |
| 20 def setUp(self): | 23 def setUp(self): |
| 21 SuperMoxTestBase.setUp(self) | 24 SuperMoxTestBase.setUp(self) |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 GclTestsBase.setUp(self) | 176 GclTestsBase.setUp(self) |
| 174 self.mox.StubOutWithMock(gcl, 'GetChangelistInfoFile') | 177 self.mox.StubOutWithMock(gcl, 'GetChangelistInfoFile') |
| 175 self.mox.StubOutWithMock(gcl, 'GetRepositoryRoot') | 178 self.mox.StubOutWithMock(gcl, 'GetRepositoryRoot') |
| 176 | 179 |
| 177 def testChangeInfoMembers(self): | 180 def testChangeInfoMembers(self): |
| 178 self.mox.ReplayAll() | 181 self.mox.ReplayAll() |
| 179 members = [ | 182 members = [ |
| 180 'CloseIssue', 'Delete', 'Exists', 'GetFiles', 'GetFileNames', | 183 'CloseIssue', 'Delete', 'Exists', 'GetFiles', 'GetFileNames', |
| 181 'GetLocalRoot', 'GetIssueDescription', 'Load', 'MissingTests', | 184 'GetLocalRoot', 'GetIssueDescription', 'Load', 'MissingTests', |
| 182 'NeedsUpload', 'PrimeLint', 'RpcServer', 'Save', 'SendToRietveld', | 185 'NeedsUpload', 'PrimeLint', 'RpcServer', 'Save', 'SendToRietveld', |
| 186 'SEPARATOR', |
| 183 'UpdateRietveldDescription', | 187 'UpdateRietveldDescription', |
| 184 'description', 'issue', 'name', | 188 'description', 'issue', 'name', |
| 185 'needs_upload', 'patch', 'patchset', 'reviewers', 'rietveld', | 189 'needs_upload', 'patch', 'patchset', 'reviewers', 'rietveld', |
| 186 'subject', | 190 'subject', |
| 187 ] | 191 ] |
| 188 # If this test fails, you should add the relevant test. | 192 # If this test fails, you should add the relevant test. |
| 189 self.compareMembers( | 193 self.compareMembers( |
| 190 gcl.ChangeInfo('', 0, 0, '', None, self.fake_root_dir, 'foo', False), | 194 gcl.ChangeInfo('', 0, 0, '', None, self.fake_root_dir, 'foo', False), |
| 191 members) | 195 members) |
| 192 | 196 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 210 self.assertEquals(o.GetFileNames(), ['foo', 'bar']) | 214 self.assertEquals(o.GetFileNames(), ['foo', 'bar']) |
| 211 self.assertEquals(o.GetFiles(), files) | 215 self.assertEquals(o.GetFiles(), files) |
| 212 self.assertEquals(o.GetLocalRoot(), self.fake_root_dir) | 216 self.assertEquals(o.GetLocalRoot(), self.fake_root_dir) |
| 213 | 217 |
| 214 def testLoadWithIssue(self): | 218 def testLoadWithIssue(self): |
| 215 self.mox.StubOutWithMock(gcl, 'GetCodeReviewSetting') | 219 self.mox.StubOutWithMock(gcl, 'GetCodeReviewSetting') |
| 216 description = ["This is some description.", "force an extra separator."] | 220 description = ["This is some description.", "force an extra separator."] |
| 217 gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh') | 221 gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh') |
| 218 gcl.os.path.exists('bleeeh').AndReturn(True) | 222 gcl.os.path.exists('bleeeh').AndReturn(True) |
| 219 gcl.gclient_utils.FileRead('bleeeh').AndReturn( | 223 gcl.gclient_utils.FileRead('bleeeh').AndReturn( |
| 220 gcl.ChangeInfo._SEPARATOR.join(["42, 53", "G b.cc"] + description)) | 224 gcl.ChangeInfo.SEPARATOR.join(["42, 53", "G b.cc"] + description)) |
| 221 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('foo') | 225 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('foo') |
| 222 # Does an upgrade. | 226 # Does an upgrade. |
| 223 gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh') | 227 gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh') |
| 224 gcl.gclient_utils.FileWrite('bleeeh', mox.IgnoreArg()) | 228 gcl.gclient_utils.FileWrite('bleeeh', mox.IgnoreArg()) |
| 225 self.mox.ReplayAll() | 229 self.mox.ReplayAll() |
| 226 | 230 |
| 227 change_info = gcl.ChangeInfo.Load('bleh', self.fake_root_dir, True, False) | 231 change_info = gcl.ChangeInfo.Load('bleh', self.fake_root_dir, True, False) |
| 228 self.assertEquals(change_info.name, 'bleh') | 232 self.assertEquals(change_info.name, 'bleh') |
| 229 self.assertEquals(change_info.issue, 42) | 233 self.assertEquals(change_info.issue, 42) |
| 230 self.assertEquals(change_info.patchset, 53) | 234 self.assertEquals(change_info.patchset, 53) |
| 231 self.assertEquals(change_info.description, | 235 self.assertEquals(change_info.description, |
| 232 gcl.ChangeInfo._SEPARATOR.join(description)) | 236 gcl.ChangeInfo.SEPARATOR.join(description)) |
| 233 self.assertEquals(change_info.GetFiles(), [('G ', 'b.cc')]) | 237 self.assertEquals(change_info.GetFiles(), [('G ', 'b.cc')]) |
| 234 | 238 |
| 235 def testLoadEmpty(self): | 239 def testLoadEmpty(self): |
| 236 self.mox.StubOutWithMock(gcl, 'GetCodeReviewSetting') | 240 self.mox.StubOutWithMock(gcl, 'GetCodeReviewSetting') |
| 237 gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh') | 241 gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh') |
| 238 gcl.os.path.exists('bleeeh').AndReturn(True) | 242 gcl.os.path.exists('bleeeh').AndReturn(True) |
| 239 gcl.gclient_utils.FileRead('bleeeh').AndReturn( | 243 gcl.gclient_utils.FileRead('bleeeh').AndReturn( |
| 240 gcl.ChangeInfo._SEPARATOR.join(["", "", ""])) | 244 gcl.ChangeInfo.SEPARATOR.join(["", "", ""])) |
| 241 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('foo') | 245 gcl.GetCodeReviewSetting('CODE_REVIEW_SERVER').AndReturn('foo') |
| 242 # Does an upgrade. | 246 # Does an upgrade. |
| 243 gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh') | 247 gcl.GetChangelistInfoFile('bleh').AndReturn('bleeeh') |
| 244 gcl.gclient_utils.FileWrite('bleeeh', mox.IgnoreArg()) | 248 gcl.gclient_utils.FileWrite('bleeeh', mox.IgnoreArg()) |
| 245 self.mox.ReplayAll() | 249 self.mox.ReplayAll() |
| 246 | 250 |
| 247 change_info = gcl.ChangeInfo.Load('bleh', self.fake_root_dir, True, False) | 251 change_info = gcl.ChangeInfo.Load('bleh', self.fake_root_dir, True, False) |
| 248 self.assertEquals(change_info.name, 'bleh') | 252 self.assertEquals(change_info.name, 'bleh') |
| 249 self.assertEquals(change_info.issue, 0) | 253 self.assertEquals(change_info.issue, 0) |
| 250 self.assertEquals(change_info.patchset, 0) | 254 self.assertEquals(change_info.patchset, 0) |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 559 self.mockPresubmit(change_info, fail=False) | 563 self.mockPresubmit(change_info, fail=False) |
| 560 self.mockCommit(change_info, 'deescription\nReview URL: http://my_server/1', | 564 self.mockCommit(change_info, 'deescription\nReview URL: http://my_server/1', |
| 561 '') | 565 '') |
| 562 | 566 |
| 563 self.mox.ReplayAll() | 567 self.mox.ReplayAll() |
| 564 | 568 |
| 565 retval = gcl.CMDcommit(['naame']) | 569 retval = gcl.CMDcommit(['naame']) |
| 566 | 570 |
| 567 self.assertEquals(retval, 0) | 571 self.assertEquals(retval, 0) |
| 568 self.assertEquals(change_info.description, 'deescription') | 572 self.assertEquals(change_info.description, 'deescription') |
| 573 # pylint: disable=W0212 |
| 569 self.assertFalse(change_info._deleted) | 574 self.assertFalse(change_info._deleted) |
| 570 self.assertFalse(change_info._closed) | 575 self.assertFalse(change_info._closed) |
| 571 | 576 |
| 572 def testPresubmitSucceedsWithCommittedMessage(self): | 577 def testPresubmitSucceedsWithCommittedMessage(self): |
| 573 change_info = self.mockLoad() | 578 change_info = self.mockLoad() |
| 574 self.mockPresubmit(change_info, fail=False) | 579 self.mockPresubmit(change_info, fail=False) |
| 575 self.mockCommit(change_info, 'deescription\nReview URL: http://my_server/1', | 580 self.mockCommit(change_info, 'deescription\nReview URL: http://my_server/1', |
| 576 '\nCommitted revision 12345') | 581 '\nCommitted revision 12345') |
| 577 | 582 |
| 578 self.mox.ReplayAll() | 583 self.mox.ReplayAll() |
| 579 | 584 |
| 580 retval = gcl.CMDcommit(['naame']) | 585 retval = gcl.CMDcommit(['naame']) |
| 581 self.assertEquals(retval, 0) | 586 self.assertEquals(retval, 0) |
| 582 self.assertEquals(change_info.description, | 587 self.assertEquals(change_info.description, |
| 583 'deescription\n\nCommitted: http://view/12345') | 588 'deescription\n\nCommitted: http://view/12345') |
| 589 # pylint: disable=W0212 |
| 584 self.assertTrue(change_info._deleted) | 590 self.assertTrue(change_info._deleted) |
| 585 self.assertTrue(change_info._closed) | 591 self.assertTrue(change_info._closed) |
| 586 | 592 |
| 587 | 593 |
| 588 if __name__ == '__main__': | 594 if __name__ == '__main__': |
| 589 import unittest | 595 import unittest |
| 590 unittest.main() | 596 unittest.main() |
| OLD | NEW |