pushimage: sign cr50 firmware.

If the board is configured to sign cr50 firmware, trigger the signing.

BUG=b:74100307
TEST=unit tests pass

Change-Id: I94c35a2cb2baf0cb8e9b07f04e9f17f2e5fc90e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1829965
Tested-by: LaMont Jones <lamontjones@chromium.org>
Commit-Queue: LaMont Jones <lamontjones@chromium.org>
Auto-Submit: LaMont Jones <lamontjones@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/pushimage_unittest.py b/scripts/pushimage_unittest.py
index e17fd6f..c620e6f 100644
--- a/scripts/pushimage_unittest.py
+++ b/scripts/pushimage_unittest.py
@@ -287,7 +287,7 @@
     with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
       urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0',
                                  sign_types=['recovery'])
-    self.assertEqual(self.gs_mock.call_count, 26)
+    self.assertEqual(self.gs_mock.call_count, 28)
     self.assertTrue(self.mark_mock.called)
     self.assertEqual(urls, EXPECTED)
 
@@ -305,6 +305,24 @@
     with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
       urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0',
                                  sign_types=['base'])
+    self.assertEqual(self.gs_mock.call_count, 30)
+    self.assertTrue(self.mark_mock.called)
+    self.assertEqual(urls, EXPECTED)
+
+  def testSignTypesCr50Firmware(self):
+    """Only sign the requested type"""
+    EXPECTED = {
+        'canary': [
+            ('gs://chromeos-releases/canary-channel/board2/5126.0.0/'
+             'ChromeOS-cr50_firmware-R34-5126.0.0-board2.instructions')],
+        'dev': [
+            ('gs://chromeos-releases/dev-channel/board2/5126.0.0/'
+             'ChromeOS-cr50_firmware-R34-5126.0.0-board2.instructions')],
+    }
+
+    with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
+      urls = pushimage.PushImage('/src', 'board2', 'R34-5126.0.0',
+                                 sign_types=['cr50_firmware'])
     self.assertEqual(self.gs_mock.call_count, 28)
     self.assertTrue(self.mark_mock.called)
     self.assertEqual(urls, EXPECTED)
@@ -313,7 +331,7 @@
     """Verify nothing is signed when we request an unavailable type"""
     urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0',
                                sign_types=['nononononono'])
-    self.assertEqual(self.gs_mock.call_count, 24)
+    self.assertEqual(self.gs_mock.call_count, 26)
     self.assertFalse(self.mark_mock.called)
     self.assertEqual(urls, {})