BuildsChrome: Call implementation.

The builds method implementation has landed, update the
endpoint to call the implementation.

BUG=chromium:1009610
TEST=run_tests

Change-Id: I9bfdb3184a9a8695915e68268164121cd1786d85
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1837715
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: David Burger <dburger@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/packages.py b/api/controller/packages.py
index 17b8263..7f13a25 100644
--- a/api/controller/packages.py
+++ b/api/controller/packages.py
@@ -140,8 +140,6 @@
 @validate.validation_complete
 def BuildsChrome(input_proto, output_proto, _config):
   """Check if the board builds chrome."""
-  _build_target = controller_util.ParseBuildTarget(input_proto.build_target)
-
-  # TODO(saklein): Call implementation once it's been completed and add tests
-  #   for successful endpoint executions.
-  output_proto.builds_chrome = True
+  build_target = controller_util.ParseBuildTarget(input_proto.build_target)
+  builds_chrome = packages.builds(constants.CHROME_CP, build_target)
+  output_proto.builds_chrome = builds_chrome
diff --git a/api/controller/packages_unittest.py b/api/controller/packages_unittest.py
index 0d75d0c..6a7e305 100644
--- a/api/controller/packages_unittest.py
+++ b/api/controller/packages_unittest.py
@@ -17,6 +17,7 @@
 from chromite.lib import cros_build_lib
 from chromite.lib import cros_test_lib
 from chromite.lib import portage_util
+from chromite.lib.build_target_util import BuildTarget
 from chromite.service import packages as packages_service
 
 
@@ -277,7 +278,7 @@
 
   def testValidateOnly(self):
     """Sanity check that a validate only call does not execute any logic."""
-    patch = self.PatchObject(packages_service, 'has_prebuilt')
+    patch = self.PatchObject(packages_service, 'builds')
 
     request = self._GetRequest(board='betty')
     packages_controller.BuildsChrome(request, self.response,
@@ -290,3 +291,12 @@
 
     with self.assertRaises(cros_build_lib.DieSystemExit):
       packages_controller.BuildsChrome(request, self.response, self.api_config)
+
+  def testBuilds(self):
+    """Test successful call handling."""
+    patch = self.PatchObject(packages_service, 'builds', return_value=True)
+
+    request = self._GetRequest(board='foo')
+    packages_controller.BuildsChrome(request, self.response, self.api_config)
+    self.assertTrue(self.response.builds_chrome)
+    patch.assert_called_once_with(constants.CHROME_CP, BuildTarget('foo'))