image: plumb output proto through to controller
BUG=b:302148521
TEST=run_tests
Change-Id: I1564d5d5871d58f8bc10021fbcfb0ce718b0a928
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4915875
Tested-by: Jack Neus <jackneus@google.com>
Commit-Queue: Jack Neus <jackneus@google.com>
Reviewed-by: Chris Gerber <gerb@google.com>
diff --git a/api/controller/image_unittest.py b/api/controller/image_unittest.py
index b14ed7a..b0cb697 100644
--- a/api/controller/image_unittest.py
+++ b/api/controller/image_unittest.py
@@ -15,6 +15,7 @@
from chromite.api.gen.chromite.api import image_pb2
from chromite.api.gen.chromite.api import sysroot_pb2
from chromite.api.gen.chromiumos import common_pb2
+from chromite.api.gen.chromiumos import signing_pb2
from chromite.lib import build_target_lib
from chromite.lib import chroot_lib
from chromite.lib import constants
@@ -812,9 +813,41 @@
rc = image_controller.SignImage(req, resp, self.validate_only_config)
self.assertEqual(rc, controller.RETURN_CODE_VALID_INPUT)
- def testSuccess(self):
+ @mock.patch.object(image_controller.image, "SignImage")
+ def testSuccess(self, mock_sign_image: mock.MagicMock):
"""Check that the endpoint finishes successfully."""
- req = image_pb2.SignImageRequest()
+ docker_image = "us-docker.pkg.dev/chromeos-bot/signing/signing:16963491"
+ req = image_pb2.SignImageRequest(
+ archive_dir=str(self.tempdir),
+ result_path=common_pb2.ResultPath(
+ path=common_pb2.Path(
+ path="/tmp/result_path",
+ location=common_pb2.Path.Location.OUTSIDE,
+ )
+ ),
+ docker_image=docker_image,
+ )
resp = image_pb2.SignImageResponse()
- rc = image_controller.SignImage(req, resp, self.mock_call_config)
+
+ build_target_signed_artifacts = signing_pb2.BuildTargetSignedArtifacts(
+ archive_artifacts=[
+ signing_pb2.ArchiveArtifacts(
+ input_archive_name="foo",
+ )
+ ]
+ )
+ mock_sign_image.return_value = build_target_signed_artifacts
+
+ rc = image_controller.SignImage(req, resp, self.api_config)
self.assertEqual(rc, controller.RETURN_CODE_SUCCESS)
+ self.assertEqual(
+ resp,
+ image_pb2.SignImageResponse(
+ output_archive_dir=str(self.tempdir),
+ signed_artifacts=build_target_signed_artifacts,
+ ),
+ )
+
+ mock_sign_image.assert_called_with(
+ mock.ANY, str(self.tempdir), Path("/tmp/result_path"), docker_image
+ )