blob: 4694a28617842e226c91e0ded1f2bc47ae7e58ea [file] [log] [blame]
maruel@chromium.org3d235242009-05-15 12:40:48 +00001#!/usr/bin/python
2# Copyright (c) 2009 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6"""Top-level presubmit script for depot tools.
7
8See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for
9details on the presubmit API built into gcl.
10"""
11
12
13def CheckChangeOnUpload(input_api, output_api):
14 return RunUnitTests(input_api, output_api)
15
16
17def CheckChangeOnCommit(input_api, output_api):
18 return (RunUnitTests(input_api, output_api) +
19 input_api.canned_checks.CheckDoNotSubmit(input_api, output_api))
20
21
22def RunUnitTests(input_api, output_api):
23 import unittest
24 tests_suite = []
25 test_loader = unittest.TestLoader()
26 def LoadTests(module_name):
27 module = __import__(module_name)
28 for part in module_name.split('.')[1:]:
29 module = getattr(module, part)
30 tests_suite.extend(test_loader.loadTestsFromModule(module)._tests)
31 # List all the test modules to test here:
32 LoadTests('tests.gcl_unittest')
33 LoadTests('tests.gclient_test')
34 LoadTests('tests.presubmit_unittest')
35 LoadTests('tests.trychange_unittest')
36 unittest.TextTestRunner(verbosity=0).run(unittest.TestSuite(tests_suite))
37 # TODO(maruel): Find a way to block the check-in.
38 return []