build_api: Allow BuildTargetUnitTest to specify packages to be run.
Currently, all testable packages are always tested. Allow, only
specified packages to be tested.
BUG=chromium:1102809
TEST=run_pytest
Cq-Depend: chromium:2289493
Change-Id: I52ec8256d169145c2f06e3e607832c6d4c1bdd3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2289494
Tested-by: Navil Perez <navil@google.com>
Reviewed-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Navil Perez <navil@google.com>
diff --git a/api/controller/test_unittest.py b/api/controller/test_unittest.py
index b0a36dc..d018e50 100644
--- a/api/controller/test_unittest.py
+++ b/api/controller/test_unittest.py
@@ -103,9 +103,21 @@
api_config.ApiConfigMixin):
"""Tests for the UnitTest function."""
- def _GetInput(self, board=None, result_path=None, chroot_path=None,
- cache_dir=None, empty_sysroot=None, blacklist=None):
+ def _GetInput(self,
+ board=None,
+ result_path=None,
+ chroot_path=None,
+ cache_dir=None,
+ empty_sysroot=None,
+ packages=None,
+ blacklist=None):
"""Helper to build an input message instance."""
+ formatted_packages = []
+ for pkg in packages or []:
+ formatted_packages.append({
+ 'category': pkg.category,
+ 'package_name': pkg.package
+ })
formatted_blacklist = []
for pkg in blacklist or []:
formatted_blacklist.append({'category': pkg.category,
@@ -231,7 +243,10 @@
def testBuildTargetUnitTest(self):
"""Test BuildTargetUnitTest successful call."""
- input_msg = self._GetInput(board='board', result_path=self.tempdir)
+ pkgs = ['foo/bar', 'cat/pkg']
+ packages = [portage_util.SplitCPV(p, strict=False) for p in pkgs]
+ input_msg = self._GetInput(
+ board='board', result_path=self.tempdir, packages=packages)
result = test_service.BuildTargetUnitTestResult(0, None)
self.PatchObject(test_service, 'BuildTargetUnitTest', return_value=result)