| Index: tests/presubmit_unittest.py
|
| diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py
|
| index 9a6ffc199dd891d0e79115448e701344406dcf50..bf9237cac2cf4d6c0c01816c6782837d4e075948 100755
|
| --- a/tests/presubmit_unittest.py
|
| +++ b/tests/presubmit_unittest.py
|
| @@ -494,8 +494,9 @@ class InputApiUnittest(PresubmitTestsBase):
|
| 'DepotToLocalPath', 'FilterSourceFile', 'LocalPaths',
|
| 'LocalToDepotPath',
|
| 'PresubmitLocalPath', 'ReadFile', 'RightHandSideLines', 'ServerPaths',
|
| - 'basename', 'cPickle', 'cStringIO', 'canned_checks', 'change',
|
| + 'basename', 'cPickle', 'cStringIO', 'canned_checks', 'change', 'environ',
|
| 'is_committing', 'marshal', 'os_path', 'pickle', 'platform',
|
| + 'python_executable',
|
| 're', 'subprocess', 'tempfile', 'traceback', 'unittest', 'urllib2',
|
| 'version',
|
| ]
|
| @@ -975,8 +976,6 @@ class CannedChecksUnittest(PresubmitTestsBase):
|
|
|
| def setUp(self):
|
| PresubmitTestsBase.setUp(self)
|
| - self.mox.StubOutWithMock(presubmit_canned_checks,
|
| - '_RunPythonUnitTests_LoadTests')
|
|
|
| def MockInputApi(self, change, committing):
|
| input_api = self.mox.CreateMock(presubmit.InputApi)
|
| @@ -985,8 +984,11 @@ class CannedChecksUnittest(PresubmitTestsBase):
|
| input_api.traceback = presubmit.traceback
|
| input_api.urllib2 = self.mox.CreateMock(presubmit.urllib2)
|
| input_api.unittest = unittest
|
| + input_api.subprocess = self.mox.CreateMock(presubmit.subprocess)
|
| +
|
| input_api.change = change
|
| input_api.is_committing = committing
|
| + input_api.python_executable = 'pyyyyython'
|
| return input_api
|
|
|
| def testMembersChanged(self):
|
| @@ -1271,9 +1273,14 @@ class CannedChecksUnittest(PresubmitTestsBase):
|
|
|
| def testRunPythonUnitTestsNonExistentUpload(self):
|
| input_api = self.MockInputApi(None, False)
|
| - presubmit_canned_checks._RunPythonUnitTests_LoadTests(
|
| - input_api, '_non_existent_module').AndRaise(
|
| - exceptions.ImportError('Blehh'))
|
| + process = self.mox.CreateMockAnything()
|
| + process.returncode = 2
|
| + input_api.subprocess.Popen(
|
| + ['pyyyyython', '-m', '_non_existent_module'], cwd=None, env=None,
|
| + stderr=presubmit.subprocess.PIPE, stdin=presubmit.subprocess.PIPE,
|
| + stdout=presubmit.subprocess.PIPE).AndReturn(process)
|
| + process.communicate().AndReturn(
|
| + ('', 'pyyython: module _non_existent_module not found'))
|
| self.mox.ReplayAll()
|
|
|
| results = presubmit_canned_checks.RunPythonUnitTests(
|
| @@ -1284,57 +1291,31 @@ class CannedChecksUnittest(PresubmitTestsBase):
|
|
|
| def testRunPythonUnitTestsNonExistentCommitting(self):
|
| input_api = self.MockInputApi(None, True)
|
| - presubmit_canned_checks._RunPythonUnitTests_LoadTests(
|
| - input_api, '_non_existent_module').AndRaise(
|
| - exceptions.ImportError('Blehh'))
|
| + process = self.mox.CreateMockAnything()
|
| + process.returncode = 2
|
| + input_api.subprocess.Popen(
|
| + ['pyyyyython', '-m', '_non_existent_module'], cwd=None, env=None,
|
| + stderr=presubmit.subprocess.PIPE, stdin=presubmit.subprocess.PIPE,
|
| + stdout=presubmit.subprocess.PIPE).AndReturn(process)
|
| + process.communicate().AndReturn(
|
| + ('', 'pyyython: module _non_existent_module not found'))
|
| self.mox.ReplayAll()
|
| results = presubmit_canned_checks.RunPythonUnitTests(
|
| input_api, presubmit.OutputApi, ['_non_existent_module'])
|
| self.assertEquals(len(results), 1)
|
| self.assertEquals(results[0].__class__, presubmit.OutputApi.PresubmitError)
|
|
|
| - def testRunPythonUnitTestsEmptyUpload(self):
|
| - input_api = self.MockInputApi(None, False)
|
| - test_module = self.mox.CreateMockAnything()
|
| - presubmit_canned_checks._RunPythonUnitTests_LoadTests(
|
| - input_api, 'test_module').AndReturn([])
|
| - self.mox.ReplayAll()
|
| -
|
| - results = presubmit_canned_checks.RunPythonUnitTests(
|
| - input_api, presubmit.OutputApi, ['test_module'])
|
| - self.assertEquals(results, [])
|
| -
|
| - def testRunPythonUnitTestsEmptyCommitting(self):
|
| - input_api = self.MockInputApi(None, True)
|
| - test_module = self.mox.CreateMockAnything()
|
| - presubmit_canned_checks._RunPythonUnitTests_LoadTests(
|
| - input_api, 'test_module').AndReturn([])
|
| - self.mox.ReplayAll()
|
| -
|
| - results = presubmit_canned_checks.RunPythonUnitTests(
|
| - input_api, presubmit.OutputApi, ['test_module'])
|
| - self.assertEquals(results, [])
|
| -
|
| def testRunPythonUnitTestsFailureUpload(self):
|
| input_api = self.MockInputApi(None, False)
|
| input_api.unittest = self.mox.CreateMock(unittest)
|
| input_api.cStringIO = self.mox.CreateMock(presubmit.cStringIO)
|
| - test = self.mox.CreateMockAnything()
|
| - presubmit_canned_checks._RunPythonUnitTests_LoadTests(
|
| - input_api, 'test_module').AndReturn([test])
|
| - runner = self.mox.CreateMockAnything()
|
| - buffer = self.mox.CreateMockAnything()
|
| - input_api.cStringIO.StringIO().AndReturn(buffer)
|
| - buffer.getvalue().AndReturn('BOO HOO!')
|
| - input_api.unittest.TextTestRunner(stream=buffer, verbosity=0
|
| - ).AndReturn(runner)
|
| - suite = self.mox.CreateMockAnything()
|
| - input_api.unittest.TestSuite([test]).AndReturn(suite)
|
| - test_result = self.mox.CreateMockAnything()
|
| - runner.run(suite).AndReturn(test_result)
|
| - test_result.wasSuccessful().AndReturn(False)
|
| - test_result.failures = [None, None]
|
| - test_result.errors = [None, None, None]
|
| + process = self.mox.CreateMockAnything()
|
| + process.returncode = -1
|
| + input_api.subprocess.Popen(
|
| + ['pyyyyython', '-m', 'test_module'], cwd=None, env=None,
|
| + stderr=presubmit.subprocess.PIPE, stdin=presubmit.subprocess.PIPE,
|
| + stdout=presubmit.subprocess.PIPE).AndReturn(process)
|
| + process.communicate().AndReturn(('BOO HOO!', ''))
|
| self.mox.ReplayAll()
|
|
|
| results = presubmit_canned_checks.RunPythonUnitTests(
|
| @@ -1342,55 +1323,38 @@ class CannedChecksUnittest(PresubmitTestsBase):
|
| self.assertEquals(len(results), 1)
|
| self.assertEquals(results[0].__class__,
|
| presubmit.OutputApi.PresubmitNotifyResult)
|
| - self.assertEquals(results[0]._long_text, 'BOO HOO!')
|
| + self.assertEquals(results[0]._long_text,
|
| + "Test 'test_module' failed with code -1\nBOO HOO!")
|
|
|
| def testRunPythonUnitTestsFailureCommitting(self):
|
| input_api = self.MockInputApi(None, True)
|
| - input_api.unittest = self.mox.CreateMock(unittest)
|
| - input_api.cStringIO = self.mox.CreateMock(presubmit.cStringIO)
|
| - test = self.mox.CreateMockAnything()
|
| - presubmit_canned_checks._RunPythonUnitTests_LoadTests(
|
| - input_api, 'test_module').AndReturn([test])
|
| - runner = self.mox.CreateMockAnything()
|
| - buffer = self.mox.CreateMockAnything()
|
| - input_api.cStringIO.StringIO().AndReturn(buffer)
|
| - buffer.getvalue().AndReturn('BOO HOO!')
|
| - input_api.unittest.TextTestRunner(stream=buffer, verbosity=0
|
| - ).AndReturn(runner)
|
| - suite = self.mox.CreateMockAnything()
|
| - input_api.unittest.TestSuite([test]).AndReturn(suite)
|
| - test_result = self.mox.CreateMockAnything()
|
| - runner.run(suite).AndReturn(test_result)
|
| - test_result.wasSuccessful().AndReturn(False)
|
| - test_result.failures = [None, None]
|
| - test_result.errors = [None, None, None]
|
| + process = self.mox.CreateMockAnything()
|
| + process.returncode = 1
|
| + input_api.subprocess.Popen(
|
| + ['pyyyyython', '-m', 'test_module'], cwd=None, env=None,
|
| + stderr=presubmit.subprocess.PIPE, stdin=presubmit.subprocess.PIPE,
|
| + stdout=presubmit.subprocess.PIPE).AndReturn(process)
|
| + process.communicate().AndReturn(('BOO HOO!', ''))
|
| self.mox.ReplayAll()
|
|
|
| results = presubmit_canned_checks.RunPythonUnitTests(
|
| input_api, presubmit.OutputApi, ['test_module'])
|
| self.assertEquals(len(results), 1)
|
| self.assertEquals(results[0].__class__, presubmit.OutputApi.PresubmitError)
|
| - self.assertEquals(results[0]._long_text, 'BOO HOO!')
|
| + self.assertEquals(results[0]._long_text,
|
| + "Test 'test_module' failed with code 1\nBOO HOO!")
|
|
|
| def testRunPythonUnitTestsSuccess(self):
|
| input_api = self.MockInputApi(None, False)
|
| input_api.cStringIO = self.mox.CreateMock(presubmit.cStringIO)
|
| input_api.unittest = self.mox.CreateMock(unittest)
|
| - test = self.mox.CreateMockAnything()
|
| - presubmit_canned_checks._RunPythonUnitTests_LoadTests(
|
| - input_api, 'test_module').AndReturn([test])
|
| - runner = self.mox.CreateMockAnything()
|
| - buffer = self.mox.CreateMockAnything()
|
| - input_api.cStringIO.StringIO().AndReturn(buffer)
|
| - input_api.unittest.TextTestRunner(stream=buffer, verbosity=0
|
| - ).AndReturn(runner)
|
| - suite = self.mox.CreateMockAnything()
|
| - input_api.unittest.TestSuite([test]).AndReturn(suite)
|
| - test_result = self.mox.CreateMockAnything()
|
| - runner.run(suite).AndReturn(test_result)
|
| - test_result.wasSuccessful().AndReturn(True)
|
| - test_result.failures = 0
|
| - test_result.errors = 0
|
| + process = self.mox.CreateMockAnything()
|
| + process.returncode = 0
|
| + input_api.subprocess.Popen(
|
| + ['pyyyyython', '-m', 'test_module'], cwd=None, env=None,
|
| + stderr=presubmit.subprocess.PIPE, stdin=presubmit.subprocess.PIPE,
|
| + stdout=presubmit.subprocess.PIPE).AndReturn(process)
|
| + process.communicate().AndReturn(('', ''))
|
| self.mox.ReplayAll()
|
|
|
| results = presubmit_canned_checks.RunPythonUnitTests(
|
|
|