BuildAPI: Add unit tests and mocks for Test service.
Regenerated api/gen/chromite/api/test_pb2.py by running
api/compile_build_api_proto.
BUG=chromium:1029033
TEST=run_tests
Change-Id: I8b6d8dc991fa97e2df60d30acb5027feb308729b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1945787
Tested-by: Michael Mortensen <mmortensen@google.com>
Reviewed-by: Michael Mortensen <mmortensen@google.com>
diff --git a/api/controller/test.py b/api/controller/test.py
index 2f26f35..9ac83a9 100644
--- a/api/controller/test.py
+++ b/api/controller/test.py
@@ -24,6 +24,7 @@
from chromite.lib import cros_build_lib
from chromite.lib import image_lib
from chromite.lib import osutils
+from chromite.lib import portage_util
from chromite.lib import sysroot_lib
from chromite.scripts import cros_set_lsb_release
from chromite.service import test
@@ -58,7 +59,23 @@
return controller.RETURN_CODE_COMPLETED_UNSUCCESSFULLY
-@faux.all_empty
+def _BuildTargetUnitTestResponse(input_proto, output_proto, _config):
+ """Add tarball path to a successful response."""
+ output_proto.tarball_path = os.path.join(input_proto.result_path,
+ 'unit_tests.tar')
+
+
+def _BuildTargetUnitTestFailedResponse(_input_proto, output_proto, _config):
+ """Add failed packages to a failed response."""
+ packages = ['foo/bar', 'cat/pkg']
+ failed_cpvs = [portage_util.SplitCPV(p, strict=False) for p in packages]
+ for cpv in failed_cpvs:
+ package_info = output_proto.failed_packages.add()
+ controller_util.CPVToPackageInfo(cpv, package_info)
+
+
+@faux.success(_BuildTargetUnitTestResponse)
+@faux.error(_BuildTargetUnitTestFailedResponse)
@validate.require('build_target.name', 'result_path')
@validate.exists('result_path')
@validate.validation_complete
@@ -116,7 +133,6 @@
return controller.RETURN_CODE_COMPLETED_UNSUCCESSFULLY
-
@faux.all_empty
@validate.require('sysroot.path', 'sysroot.build_target.name', 'chrome_root')
@validate.validation_complete