PRESUBMIT_test.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env python3
  2. # Copyright 2022 The Chromium Authors
  3. # Use of this source code is governed by a BSD-style license that can be
  4. # found in the LICENSE file.
  5. import os
  6. import sys
  7. import unittest
  8. import PRESUBMIT
  9. sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
  10. from PRESUBMIT_test_mocks import MockAffectedFile
  11. from PRESUBMIT_test_mocks import MockInputApi, MockOutputApi
  12. USE_PYTHON3 = True
  13. def _fails_deps_check(line, filename='BUILD.gn'):
  14. mock_input_api = MockInputApi()
  15. mock_input_api.files = [MockAffectedFile(filename, [line])]
  16. errors = PRESUBMIT.CheckNoBadDeps(mock_input_api, MockOutputApi())
  17. return bool(errors)
  18. class CheckNoBadDepsTest(unittest.TestCase):
  19. def testComments(self):
  20. self.assertFalse(_fails_deps_check('no # import("//third_party/foo")'))
  21. def testFiles(self):
  22. self.assertFalse(
  23. _fails_deps_check('import("//third_party/foo")', filename='foo.txt'))
  24. self.assertTrue(
  25. _fails_deps_check('import("//third_party/foo")', filename='foo.gni'))
  26. def testPaths(self):
  27. self.assertFalse(_fails_deps_check('import("//build/things.gni")'))
  28. self.assertTrue(_fails_deps_check('import("//chrome/things.gni")'))
  29. if __name__ == '__main__':
  30. unittest.main()