| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 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 presubmit_support.py and presubmit_canned_checks.py.""" | 6 """Unit tests for presubmit_support.py and presubmit_canned_checks.py.""" |
| 7 | 7 |
| 8 # pylint: disable=E1101,E1103 | 8 # pylint: disable=E1101,E1103 |
| 9 | 9 |
| 10 import logging | 10 import logging |
| 11 import os | 11 import os |
| 12 import StringIO | 12 import StringIO |
| 13 import sys | 13 import sys |
| 14 import time | 14 import time |
| 15 | 15 |
| 16 # TODO(maruel): Include inside depot_tools. |
| 17 from pylint import lint |
| 18 |
| 16 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | 19 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
| 17 | 20 |
| 18 from testing_support.super_mox import mox, SuperMoxTestBase | 21 from testing_support.super_mox import mox, SuperMoxTestBase |
| 19 | 22 |
| 20 import owners | 23 import owners |
| 21 import presubmit_support as presubmit | 24 import presubmit_support as presubmit |
| 22 import rietveld | 25 import rietveld |
| 23 | 26 |
| 24 # Shortcut. | 27 # Shortcut. |
| 25 presubmit_canned_checks = presubmit.presubmit_canned_checks | 28 presubmit_canned_checks = presubmit.presubmit_canned_checks |
| (...skipping 1416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1442 | 1445 |
| 1443 | 1446 |
| 1444 class CannedChecksUnittest(PresubmitTestsBase): | 1447 class CannedChecksUnittest(PresubmitTestsBase): |
| 1445 """Tests presubmit_canned_checks.py.""" | 1448 """Tests presubmit_canned_checks.py.""" |
| 1446 | 1449 |
| 1447 def MockInputApi(self, change, committing): | 1450 def MockInputApi(self, change, committing): |
| 1448 # pylint: disable=R0201 | 1451 # pylint: disable=R0201 |
| 1449 input_api = self.mox.CreateMock(presubmit.InputApi) | 1452 input_api = self.mox.CreateMock(presubmit.InputApi) |
| 1450 input_api.cStringIO = presubmit.cStringIO | 1453 input_api.cStringIO = presubmit.cStringIO |
| 1451 input_api.json = presubmit.json | 1454 input_api.json = presubmit.json |
| 1455 input_api.logging = logging |
| 1452 input_api.os_listdir = self.mox.CreateMockAnything() | 1456 input_api.os_listdir = self.mox.CreateMockAnything() |
| 1453 input_api.os_walk = self.mox.CreateMockAnything() | 1457 input_api.os_walk = self.mox.CreateMockAnything() |
| 1454 input_api.os_path = presubmit.os.path | 1458 input_api.os_path = presubmit.os.path |
| 1455 input_api.re = presubmit.re | 1459 input_api.re = presubmit.re |
| 1456 input_api.rietveld = self.mox.CreateMock(rietveld.Rietveld) | 1460 input_api.rietveld = self.mox.CreateMock(rietveld.Rietveld) |
| 1457 input_api.traceback = presubmit.traceback | 1461 input_api.traceback = presubmit.traceback |
| 1458 input_api.urllib2 = self.mox.CreateMock(presubmit.urllib2) | 1462 input_api.urllib2 = self.mox.CreateMock(presubmit.urllib2) |
| 1459 input_api.unittest = unittest | 1463 input_api.unittest = unittest |
| 1460 input_api.subprocess = self.mox.CreateMock(presubmit.subprocess) | 1464 input_api.subprocess = self.mox.CreateMock(presubmit.subprocess) |
| 1461 class fake_CalledProcessError(Exception): | 1465 class fake_CalledProcessError(Exception): |
| 1462 def __str__(self): | 1466 def __str__(self): |
| 1463 return 'foo' | 1467 return 'foo' |
| 1464 input_api.subprocess.CalledProcessError = fake_CalledProcessError | 1468 input_api.subprocess.CalledProcessError = fake_CalledProcessError |
| 1469 input_api.verbose = False |
| 1465 | 1470 |
| 1466 input_api.change = change | 1471 input_api.change = change |
| 1467 input_api.host_url = 'http://localhost' | 1472 input_api.host_url = 'http://localhost' |
| 1468 input_api.is_committing = committing | 1473 input_api.is_committing = committing |
| 1469 input_api.tbr = False | 1474 input_api.tbr = False |
| 1470 input_api.python_executable = 'pyyyyython' | 1475 input_api.python_executable = 'pyyyyython' |
| 1471 input_api.platform = sys.platform | 1476 input_api.platform = sys.platform |
| 1472 input_api.time = time | 1477 input_api.time = time |
| 1473 input_api.canned_checks = presubmit_canned_checks | 1478 input_api.canned_checks = presubmit_canned_checks |
| 1474 return input_api | 1479 return input_api |
| (...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2123 input_api.unittest = self.mox.CreateMock(unittest) | 2128 input_api.unittest = self.mox.CreateMock(unittest) |
| 2124 input_api.subprocess.check_output( | 2129 input_api.subprocess.check_output( |
| 2125 ['pyyyyython', '-m', 'test_module'], cwd=None, env=None, | 2130 ['pyyyyython', '-m', 'test_module'], cwd=None, env=None, |
| 2126 stderr=input_api.subprocess.STDOUT) | 2131 stderr=input_api.subprocess.STDOUT) |
| 2127 self.mox.ReplayAll() | 2132 self.mox.ReplayAll() |
| 2128 | 2133 |
| 2129 results = presubmit_canned_checks.RunPythonUnitTests( | 2134 results = presubmit_canned_checks.RunPythonUnitTests( |
| 2130 input_api, presubmit.OutputApi, ['test_module']) | 2135 input_api, presubmit.OutputApi, ['test_module']) |
| 2131 self.assertEquals(len(results), 0) | 2136 self.assertEquals(len(results), 0) |
| 2132 | 2137 |
| 2138 def testCannedRunPylint(self): |
| 2139 # lint.Run() always calls sys.exit()... |
| 2140 lint.Run = lambda x: sys.exit(0) |
| 2141 input_api = self.MockInputApi(None, True) |
| 2142 input_api.AffectedSourceFiles(mox.IgnoreArg()).AndReturn(True) |
| 2143 input_api.PresubmitLocalPath().AndReturn('/foo') |
| 2144 input_api.PresubmitLocalPath().AndReturn('/foo') |
| 2145 input_api.os_walk('/foo').AndReturn([('/foo', [], ['file1.py'])]) |
| 2146 self.mox.ReplayAll() |
| 2147 |
| 2148 results = presubmit_canned_checks.RunPylint( |
| 2149 input_api, presubmit.OutputApi) |
| 2150 self.assertEquals([], results) |
| 2151 |
| 2133 def testCheckBuildbotPendingBuildsBad(self): | 2152 def testCheckBuildbotPendingBuildsBad(self): |
| 2134 input_api = self.MockInputApi(None, True) | 2153 input_api = self.MockInputApi(None, True) |
| 2135 connection = self.mox.CreateMockAnything() | 2154 connection = self.mox.CreateMockAnything() |
| 2136 input_api.urllib2.urlopen('uurl').AndReturn(connection) | 2155 input_api.urllib2.urlopen('uurl').AndReturn(connection) |
| 2137 connection.read().AndReturn('foo') | 2156 connection.read().AndReturn('foo') |
| 2138 connection.close() | 2157 connection.close() |
| 2139 self.mox.ReplayAll() | 2158 self.mox.ReplayAll() |
| 2140 | 2159 |
| 2141 results = presubmit_canned_checks.CheckBuildbotPendingBuilds( | 2160 results = presubmit_canned_checks.CheckBuildbotPendingBuilds( |
| 2142 input_api, presubmit.OutputApi, 'uurl', 2, ('foo')) | 2161 input_api, presubmit.OutputApi, 'uurl', 2, ('foo')) |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2434 owners_check=False) | 2453 owners_check=False) |
| 2435 self.assertEqual(1, len(results)) | 2454 self.assertEqual(1, len(results)) |
| 2436 self.assertEqual( | 2455 self.assertEqual( |
| 2437 'Found line ending with white spaces in:', results[0]._message) | 2456 'Found line ending with white spaces in:', results[0]._message) |
| 2438 self.checkstdout('') | 2457 self.checkstdout('') |
| 2439 | 2458 |
| 2440 | 2459 |
| 2441 if __name__ == '__main__': | 2460 if __name__ == '__main__': |
| 2442 import unittest | 2461 import unittest |
| 2443 unittest.main() | 2462 unittest.main() |
| OLD | NEW |