Update controller_util to handle goma_config.chromeos_goma_dir.
This include regenerating test_pb2.py and common_pb2.py by
running api/compile_build_api_proto and updating unit tests to
validate calls to goma with and without chromeos_goma_dir.
BUG=chromium:999670
TEST=manual, run_tests
Change-Id: I805e800551ef6199674b94bccf10786ef6db2586
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1838305
Tested-by: Michael Mortensen <mmortensen@google.com>
Auto-Submit: Michael Mortensen <mmortensen@google.com>
Reviewed-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/controller_util_unittest.py b/api/controller/controller_util_unittest.py
index 90bea4f..ea96fc3 100644
--- a/api/controller/controller_util_unittest.py
+++ b/api/controller/controller_util_unittest.py
@@ -10,13 +10,14 @@
from chromite.api.controller import controller_util
from chromite.api.gen.chromite.api import build_api_test_pb2
from chromite.api.gen.chromiumos import common_pb2
+from chromite.cbuildbot import goma_util
from chromite.lib import cros_test_lib
from chromite.lib import portage_util
from chromite.lib.build_target_util import BuildTarget
from chromite.lib.chroot_lib import Chroot
-class ParseChrootTest(cros_test_lib.TestCase):
+class ParseChrootTest(cros_test_lib.MockTestCase):
"""ParseChroot tests."""
def testSuccess(self):
@@ -41,6 +42,45 @@
self.assertEqual(expected, result)
+
+ def testChrootCallToGoma(self):
+ """Test calls to goma."""
+ path = '/chroot/path'
+ cache_dir = '/cache/dir'
+ chrome_root = '/chrome/root'
+ use_flags = [{'flag': 'useflag1'}, {'flag': 'useflag2'}]
+ features = [{'feature': 'feature1'}, {'feature': 'feature2'}]
+ goma_test_dir = '/goma/test/dir'
+ goma_test_json_string = 'goma_json'
+ chromeos_goma_test_dir = '/chromeos/goma/test/dir'
+
+ patch = self.PatchObject(goma_util, 'Goma')
+
+ goma_config = common_pb2.GomaConfig(goma_dir=goma_test_dir,
+ goma_client_json=goma_test_json_string)
+ chroot_message = common_pb2.Chroot(path=path, cache_dir=cache_dir,
+ chrome_dir=chrome_root,
+ env={'use_flags': use_flags,
+ 'features': features},
+ goma=goma_config)
+
+ controller_util.ParseChroot(chroot_message)
+ patch.assert_called_with(goma_test_dir, goma_test_json_string,
+ stage_name='BuildAPI', chromeos_goma_dir=None)
+
+ goma_config.chromeos_goma_dir = chromeos_goma_test_dir
+ chroot_message = common_pb2.Chroot(path=path, cache_dir=cache_dir,
+ chrome_dir=chrome_root,
+ env={'use_flags': use_flags,
+ 'features': features},
+ goma=goma_config)
+
+ controller_util.ParseChroot(chroot_message)
+ patch.assert_called_with(goma_test_dir, goma_test_json_string,
+ stage_name='BuildAPI',
+ chromeos_goma_dir=chromeos_goma_test_dir)
+
+
def testWrongMessage(self):
"""Test invalid message type given."""
with self.assertRaises(AssertionError):