PackagesService: Add BuildsChrome endpoint.
Endpoint to check if a particular build target has chrome in
its depgraph. A more interesting implementation will come
later. Always returning True allows the endpoint to be called
by the recipes and doesn't change its behavior.
BUG=chromium:1009610
TEST=run_tests
Change-Id: I0dfe1ba6e3fa234459ad1de72e80de6139e0b1ab
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1832563
Tested-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
Reviewed-by: David Burger <dburger@chromium.org>
diff --git a/api/controller/packages_unittest.py b/api/controller/packages_unittest.py
index 58fe3d1..0d75d0c 100644
--- a/api/controller/packages_unittest.py
+++ b/api/controller/packages_unittest.py
@@ -258,3 +258,35 @@
with self.assertRaises(cros_build_lib.DieSystemExit):
packages_controller.HasChromePrebuilt(request, self.response,
self.api_config)
+
+
+class BuildsChromeTest(cros_test_lib.MockTestCase, ApiConfigMixin):
+ """BuildsChrome tests."""
+
+ def setUp(self):
+ self.response = packages_pb2.BuildsChromeResponse()
+
+ def _GetRequest(self, board=None):
+ """Helper to build out a request."""
+ request = packages_pb2.BuildsChromeRequest()
+
+ if board:
+ request.build_target.name = board
+
+ return request
+
+ def testValidateOnly(self):
+ """Sanity check that a validate only call does not execute any logic."""
+ patch = self.PatchObject(packages_service, 'has_prebuilt')
+
+ request = self._GetRequest(board='betty')
+ packages_controller.BuildsChrome(request, self.response,
+ self.validate_only_config)
+ patch.assert_not_called()
+
+ def testNoBuildTargetFails(self):
+ """No build target argument should fail."""
+ request = self._GetRequest()
+
+ with self.assertRaises(cros_build_lib.DieSystemExit):
+ packages_controller.BuildsChrome(request, self.response, self.api_config)