|  | #!/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() |