Add multiversion support to packages api
This CL is the second installment in the
add-multiversion-uprev-support-to-pupr series. For the series finale,
we will be modifying the generator recipe to generate CLs using
the revised api. Stay tuned!
BUG=chromium:985035
TEST=unittest
Change-Id: I4665a1f08edb2e9368e308504797afd5831a16cd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1796566
Tested-by: Yaakov Shaul <yshaul@chromium.org>
Reviewed-by: David Burger <dburger@chromium.org>
diff --git a/api/controller/packages.py b/api/controller/packages.py
index 0443e74..12c8b7e 100644
--- a/api/controller/packages.py
+++ b/api/controller/packages.py
@@ -76,9 +76,12 @@
# No uprevs executed, skip the output population.
return
- output_proto.version = result.new_version
- for path in result.modified_ebuilds:
- output_proto.modified_ebuilds.add().path = path
+ for modified in result.modified:
+ uprev_response = output_proto.responses.add()
+ uprev_response.version = modified.new_version
+ for path in modified.files:
+ uprev_response.modified_ebuilds.add().path = path
+
@faux.all_empty
diff --git a/api/controller/packages_unittest.py b/api/controller/packages_unittest.py
index 404d80b..98f562c 100644
--- a/api/controller/packages_unittest.py
+++ b/api/controller/packages_unittest.py
@@ -92,7 +92,7 @@
"""UprevVersionedPackage tests."""
def setUp(self):
- self.response = packages_pb2.UprevPackagesResponse()
+ self.response = packages_pb2.UprevVersionedPackageResponse()
def _addVersion(self, request, version):
"""Helper method to add a full version message to the request."""
@@ -148,8 +148,9 @@
def testOutputHandling(self):
"""Test the modified files are getting correctly added to the output."""
version = '1.2.3.4'
- result = packages_service.UprevVersionedPackageResult(
+ result = packages_service.UprevVersionedPackageResult().add_result(
version, ['/file/one', '/file/two'])
+
self.PatchObject(
packages_service, 'uprev_versioned_package', return_value=result)
@@ -161,10 +162,11 @@
packages_controller.UprevVersionedPackage(request, self.response,
self.api_config)
- self.assertEqual(version, self.response.version)
- self.assertItemsEqual(
- result.modified_ebuilds,
- [ebuild.path for ebuild in self.response.modified_ebuilds])
+ for idx, uprev_response in enumerate(self.response.responses):
+ self.assertEqual(result.modified[idx].new_version, uprev_response.version)
+ self.assertItemsEqual(
+ result.modified[idx].files,
+ [ebuild.path for ebuild in uprev_response.modified_ebuilds])
class GetBestVisibleTest(cros_test_lib.MockTestCase, ApiConfigMixin):