API: allow package list in depgraph.

This is based on crrev.com/c/1965633 having landed.

BUG=chromium:1019868
TEST=unit tests pass.

Change-Id: I123cc95a2cd1c78355a371e83248dee725f8f7f8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1965673
Reviewed-by: Alex Klein <saklein@chromium.org>
Tested-by: LaMont Jones <lamontjones@chromium.org>
Commit-Queue: LaMont Jones <lamontjones@chromium.org>
diff --git a/api/controller/dependency_unittest.py b/api/controller/dependency_unittest.py
index c0412ed..459175f 100644
--- a/api/controller/dependency_unittest.py
+++ b/api/controller/dependency_unittest.py
@@ -7,8 +7,10 @@
 from __future__ import print_function
 
 from chromite.api import api_config
+from chromite.api.controller import controller_util
 from chromite.api.controller import dependency
 from chromite.api.gen.chromite.api import depgraph_pb2
+from chromite.api.gen.chromiumos import common_pb2
 from chromite.lib import cros_test_lib
 from chromite.service import dependency as dependency_service
 
@@ -91,6 +93,28 @@
     self.assertEqual(self.response.dep_graph.build_target.name, 'deathstar')
     patch.assert_called_once()
 
+  def testGetBuildDependencyGraphForPackages(self):
+    """GetBuildDependencyGraph calls helper method with correct args."""
+    get_dep = self.PatchObject(
+        dependency_service,
+        'GetBuildDependency',
+        return_value=(self.json_deps, self.json_deps))
+    pkg_mock = 'package-CPV'
+    pkg_to_cpv = self.PatchObject(
+        controller_util,
+        'PackageInfoToCPV', return_value=pkg_mock)
+    package = common_pb2.PackageInfo(
+        package_name='chromeos-chrome', category='chromeos-base')
+    input_proto = depgraph_pb2.GetBuildDependencyGraphRequest(
+        build_target=common_pb2.BuildTarget(name='target'),
+        packages=[package]
+    )
+    dependency.GetBuildDependencyGraph(input_proto, self.response,
+                                       self.api_config)
+    self.assertEqual(self.response.dep_graph.build_target.name, 'deathstar')
+    pkg_to_cpv.assert_called_once_with(package)
+    get_dep.assert_called_once_with('target', [pkg_mock])
+
   def testValidateOnly(self):
     """Sanity check that a validate only call does not execute any logic."""
     patch = self.PatchObject(dependency_service, 'GetBuildDependency')