api: PackageIndexInfo deserialization
Add PackageIndexInfo deserialization function to controller_util.
Preparation for removing protobuf dependencies in lib/.
BUG=b:265998356
TEST=./run_test
Change-Id: Iac25771aa561839d887a935c7779dd95a1053dd4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4179353
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Lizzy Presland <zland@google.com>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/api/controller/controller_util_unittest.py b/api/controller/controller_util_unittest.py
index 085c510..e955f24 100644
--- a/api/controller/controller_util_unittest.py
+++ b/api/controller/controller_util_unittest.py
@@ -8,6 +8,7 @@
from chromite.api.gen.chromite.api import build_api_test_pb2
from chromite.api.gen.chromite.api import sysroot_pb2
from chromite.api.gen.chromiumos import common_pb2
+from chromite.lib import binpkg
from chromite.lib import build_target_lib
from chromite.lib import chroot_lib
from chromite.lib import cros_test_lib
@@ -227,3 +228,29 @@
packages, output_proto, target_sysroot
)
assert len(output_proto.failed_package_data) == 3
+
+
+def test_package_index_info():
+ """Quick check converting to/from protobuf works."""
+ sha = "SHA"
+ number = 5
+ build_target_name = "build_target"
+ profile_name = "profile"
+ location = "location"
+
+ msg = common_pb2.PackageIndexInfo()
+ msg.snapshot_sha = sha
+ msg.snapshot_number = number
+ msg.build_target.name = build_target_name
+ msg.profile.name = profile_name
+ msg.location = location
+
+ obj = binpkg.PackageIndexInfo(
+ snapshot_sha=sha,
+ snapshot_number=number,
+ build_target=build_target_lib.BuildTarget(name=build_target_name),
+ profile=sysroot_lib.Profile(name=profile_name),
+ location=location,
+ )
+
+ assert obj == controller_util.deserialize_package_index_info(msg)