controller_util: Add PackageInfo serialization.
The new parsers.package_info.PackageInfo class needs a translation
function to a PackageInfo message. Just call serialize/deserialize
to simplify naming.
BUG=None
TEST=run_pytest
Change-Id: Ib5619f90590b212d4c7b4f7e7ffbbccfe5cadb33
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2454501
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Michael Mortensen <mmortensen@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 7deeeba..7affde7 100644
--- a/api/controller/controller_util_unittest.py
+++ b/api/controller/controller_util_unittest.py
@@ -232,3 +232,21 @@
cpv = package_info.SplitCPV('', strict=False)
with self.assertRaises(ValueError):
controller_util.CPVToString(cpv)
+
+
+def test_serialize_package_info():
+ pkg_info = package_info.parse('foo/bar-1.2.3-r4')
+ pkg_info_msg = common_pb2.PackageInfo()
+ controller_util.serialize_package_info(pkg_info, pkg_info_msg)
+ assert pkg_info_msg.category == 'foo'
+ assert pkg_info_msg.package_name == 'bar'
+ assert pkg_info_msg.version == '1.2.3-r4'
+
+
+def test_deserialize_package_info():
+ pkg_info_msg = common_pb2.PackageInfo()
+ pkg_info_msg.category = 'foo'
+ pkg_info_msg.package_name = 'bar'
+ pkg_info_msg.version = '1.2.3-r4'
+ pkg_info = controller_util.deserialize_package_info(pkg_info_msg)
+ assert pkg_info.cpvr == 'foo/bar-1.2.3-r4'