Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2055)

Unified Diff: tests/revert_unittest.py

Issue 125253: Fix revert.py which was broken on r18272. (Closed)
Patch Set: Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « revert.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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()
« no previous file with comments | « revert.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698