controller: add UNIT_TESTS artifact

BUG=b:181879769
TEST=new unit & cq

Change-Id: I5bff7500186759ffae21d3876b4d011a2a8e5214
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2979632
Commit-Queue: George Engelbrecht <engeg@google.com>
Tested-by: George Engelbrecht <engeg@google.com>
Reviewed-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Jack Neus <jackneus@google.com>
diff --git a/api/controller/test.py b/api/controller/test.py
index 01ad917..2f47f4c 100644
--- a/api/controller/test.py
+++ b/api/controller/test.py
@@ -18,13 +18,13 @@
 from chromite.api.gen.chromiumos import common_pb2
 from chromite.cbuildbot import goma_util
 from chromite.lib import build_target_lib
+from chromite.lib import chroot_lib
 from chromite.lib import constants
 from chromite.lib import cros_build_lib
 from chromite.lib import image_lib
 from chromite.lib import osutils
 from chromite.lib import sysroot_lib
 from chromite.lib.parser import package_info
-from chromite.lib import chroot_lib
 from chromite.scripts import cros_set_lsb_release
 from chromite.service import test
 from chromite.utils import key_value_store
@@ -343,14 +343,21 @@
     A list of dictionary mappings of ArtifactType to list of paths.
   """
   generated = []
+
+  artifact_types = {
+    in_proto.ArtifactType.UNIT_TESTS: test.BuildTargetUnitTestTarball,
+    in_proto.ArtifactType.CODE_COVERAGE_LLVM_JSON:
+        test.BundleCodeCoverageLlvmJson,
+  }
+
   for output_artifact in in_proto.output_artifacts:
-    if (in_proto.ArtifactType.CODE_COVERAGE_LLVM_JSON
-        in output_artifact.artifact_types):
-      result_path = test.BundleCodeCoverageLlvmJson(chroot, sysroot_class,
-                                                    output_dir)
-      if result_path:
-        generated.append({
-            'paths': [result_path],
-            'type': in_proto.ArtifactType.CODE_COVERAGE_LLVM_JSON
-        })
+    for artifact_type, func in artifact_types.items():
+      if artifact_type in output_artifact.artifact_types:
+        paths = func(chroot, sysroot_class, output_dir)
+        if paths:
+          generated.append({
+              'paths': [paths] if isinstance(paths, str) else paths,
+              'type': artifact_type,
+          })
+
   return generated