| Index: tests/revert_unittest.py
|
| diff --git a/tests/revert_unittest.py b/tests/revert_unittest.py
|
| index e95d3c4faeba6e9ed30b05f0634e59fad298c810..eee176d2ee0975f2ccf4b32ef6728a59b4177c64 100644
|
| --- a/tests/revert_unittest.py
|
| +++ b/tests/revert_unittest.py
|
| @@ -16,7 +16,17 @@ from super_mox import mox
|
|
|
| class RevertTestsBase(super_mox.SuperMoxTestBase):
|
| """Setups and tear downs the mocks but doesn't test anything as-is."""
|
| - pass
|
| + def setUp(self):
|
| + super_mox.SuperMoxTestBase.setUp(self)
|
| + self.mox.StubOutWithMock(revert, 'gcl')
|
| + self.mox.StubOutWithMock(revert, 'gclient')
|
| + self.mox.StubOutWithMock(revert, 'os')
|
| + self.mox.StubOutWithMock(revert.os, 'path')
|
| + self.mox.StubOutWithMock(revert.sys, 'stdout')
|
| +
|
| + # These functions are not tested.
|
| + self.mox.StubOutWithMock(revert, 'GetRepoBase')
|
| + self.mox.StubOutWithMock(revert, 'CaptureSVNLog')
|
|
|
|
|
| class RevertUnittest(RevertTestsBase):
|
| @@ -31,5 +41,75 @@ class RevertUnittest(RevertTestsBase):
|
| self.compareMembers(revert, members)
|
|
|
|
|
| +class RevertMainUnittest(RevertTestsBase):
|
| + def setUp(self):
|
| + RevertTestsBase.setUp(self)
|
| + self.mox.StubOutWithMock(revert, 'gcl')
|
| + self.mox.StubOutWithMock(revert, 'gclient')
|
| + self.mox.StubOutWithMock(revert, 'os')
|
| + self.mox.StubOutWithMock(revert.os, 'path')
|
| + self.mox.StubOutWithMock(revert, 'sys')
|
| + self.mox.StubOutWithMock(revert, 'Revert')
|
| +
|
| + def testMain(self):
|
| + revert.gcl.GetInfoDir().AndReturn('foo')
|
| + revert.os.path.exists('foo').AndReturn(True)
|
| + revert.Revert([42, 23], True, True, False, 'bleh', ['foo@example.com']
|
| + ).AndReturn(31337)
|
| + self.mox.ReplayAll()
|
| +
|
| + self.assertEquals(revert.Main(['revert', '-c', '-f', '-n', '-m', 'bleh',
|
| + '-r', 'foo@example.com', '42', '23']),
|
| + 31337)
|
| +
|
| +
|
| +class RevertRevertUnittest(RevertTestsBase):
|
| + def setUp(self):
|
| + RevertTestsBase.setUp(self)
|
| +
|
| + def testRevert(self):
|
| + revert.gcl.GetRepositoryRoot().AndReturn('foo')
|
| + revert.os.chdir('foo')
|
| + entries = [{
|
| + 'author': 'Georges',
|
| + 'paths': [
|
| + {'path': 'proto://fqdn/repo/random_file'}
|
| + ],
|
| + }]
|
| + revert.CaptureSVNLog(['-r', '42', '-v']).AndReturn(entries)
|
| + revert.GetRepoBase().AndReturn('proto://fqdn/repo/')
|
| + revert.gclient.CaptureSVNStatus(['random_file']).AndReturn([])
|
| + revert.gcl.RunShell(['svn', 'up', 'random_file'])
|
| + revert.os.path.isdir('random_file').AndReturn(False)
|
| + status = """--- Reverse-merging r42 into '.':
|
| +M random_file
|
| +"""
|
| + revert.gcl.RunShellWithReturnCode(['svn', 'merge', '-c', '-42',
|
| + 'random_file'],
|
| + print_output=True).AndReturn([status, 0])
|
| + change = self.mox.CreateMockAnything()
|
| + revert.gcl.ChangeInfo('revert42', 0, 0, 'Reverting 42.\n\nbleh',
|
| + [('M ', 'random_file')], 'foo').AndReturn(change)
|
| + change.Save()
|
| + revert.gcl.UploadCL(change,
|
| + ['--no_presubmit', '-r', 'foo@example.com', '--no_try'])
|
| + revert.gcl.Commit(change, ['--no_presubmit', '--force'])
|
| + revert.gclient.Main(['gclient.py', 'sync'])
|
| + outputs = [
|
| + 'Blaming Georges\n',
|
| + 'Emailing foo@example.com\n',
|
| + 'These files were modified in 42:',
|
| + 'random_file',
|
| + '',
|
| + 'Reverting 42 in ./'
|
| + ]
|
| + for line in outputs:
|
| + revert.sys.stdout.write(line)
|
| + revert.sys.stdout.write('\n')
|
| + self.mox.ReplayAll()
|
| +
|
| + revert.Revert([42], True, True, False, 'bleh', ['foo@example.com'])
|
| +
|
| +
|
| if __name__ == '__main__':
|
| unittest.main()
|
|
|