build-api: Handle missing firmware version
If `_get_firmware_version_cmd_result` returns a None result (like in
cases of a betty image), make sure we don't attempt to do things
(like split or otherwise assume presence of) to that version string.
BUG=b:213879649
TEST=run_tests
Change-Id: Icc9c831b902f8a2afbe34674bdc4340e1d6ebd20
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3383105
Reviewed-by: George Engelbrecht <engeg@google.com>
Reviewed-by: Greg Edelston <gredelston@google.com>
Commit-Queue: Benjamin Shai <bshai@google.com>
Tested-by: Benjamin Shai <bshai@google.com>
diff --git a/service/packages_unittest.py b/service/packages_unittest.py
index 2fd732e..c74685b 100644
--- a/service/packages_unittest.py
+++ b/service/packages_unittest.py
@@ -878,6 +878,17 @@
'reef_v1.1.5900-ab1ee51',
'reef_v1.1.5909-bd1f0c9'))
+ def test_get_firmware_versions_error(self):
+ """Tests get_firmware_versions with no output."""
+ # Throw an exception when running the command.
+ self.PatchObject(
+ cros_build_lib,
+ 'run',
+ side_effect=cros_build_lib.RunCommandError('error'))
+ build_target = build_target_lib.BuildTarget(self.board)
+ result = packages.get_all_firmware_versions(build_target)
+ self.assertEqual(result, {})
+
class GetFirmwareVersionsTest(cros_test_lib.RunCommandTempDirTestCase):
"""Tests for get_firmware_versions."""