| #!/usr/bin/env python3 |
| # Copyright 2022 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import os |
| import sys |
| import unittest |
| |
| import PRESUBMIT |
| |
| sys.path.append(os.path.join(os.path.dirname(__file__), '..')) |
| |
| from PRESUBMIT_test_mocks import MockAffectedFile |
| from PRESUBMIT_test_mocks import MockInputApi, MockOutputApi |
| |
| |
| |
| def _fails_deps_check(line, filename='BUILD.gn'): |
| mock_input_api = MockInputApi() |
| mock_input_api.files = [MockAffectedFile(filename, [line])] |
| errors = PRESUBMIT.CheckNoBadDeps(mock_input_api, MockOutputApi()) |
| return bool(errors) |
| |
| |
| class CheckNoBadDepsTest(unittest.TestCase): |
| def testComments(self): |
| self.assertFalse(_fails_deps_check('no # import("//third_party/foo")')) |
| |
| def testFiles(self): |
| self.assertFalse( |
| _fails_deps_check('import("//third_party/foo")', filename='foo.txt')) |
| self.assertTrue( |
| _fails_deps_check('import("//third_party/foo")', filename='foo.gni')) |
| |
| def testPaths(self): |
| self.assertFalse(_fails_deps_check('import("//build/things.gni")')) |
| self.assertTrue(_fails_deps_check('import("//chrome/things.gni")')) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |