def testMultipleKeysets(self): """Verify behavior when processing an insn w/multiple keysets""" EXPECTED = { 'canary': [ ('gs://chromeos-releases/canary-channel/test.board/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board.instructions'), ('gs://chromeos-releases/canary-channel/test.board/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board-key2.instructions' ), ('gs://chromeos-releases/canary-channel/test.board/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board-key3.instructions' ), ], 'dev': [ ('gs://chromeos-releases/dev-channel/test.board/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board.instructions'), ('gs://chromeos-releases/dev-channel/test.board/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board-key2.instructions' ), ('gs://chromeos-releases/dev-channel/test.board/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board-key3.instructions' ), ], } with mock.patch.object(gs.GSContext, 'Exists', return_value=True): urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0', force_keysets=('key1', 'key2', 'key3')) self.assertEqual(urls, EXPECTED)
def testMultipleAltInsns(self): """Verify behavior when processing an insn w/multiple insn overlays""" EXPECTED = { 'canary': [ ('gs://chromeos-releases/canary-channel/test.multi/1.0.0/' 'ChromeOS-recovery-R1-1.0.0-test.multi.instructions'), ('gs://chromeos-releases/canary-channel/test.multi/1.0.0/' 'ChromeOS-recovery-R1-1.0.0-test.multi-TwoKeyset.instructions' ), ('gs://chromeos-releases/canary-channel/test.multi/1.0.0/' 'ChromeOS-recovery-R1-1.0.0-test.multi-ColdKeyset.instructions' ), ], 'dev': [ ('gs://chromeos-releases/dev-channel/test.multi/1.0.0/' 'ChromeOS-recovery-R1-1.0.0-test.multi.instructions'), ('gs://chromeos-releases/dev-channel/test.multi/1.0.0/' 'ChromeOS-recovery-R1-1.0.0-test.multi-TwoKeyset.instructions' ), ('gs://chromeos-releases/dev-channel/test.multi/1.0.0/' 'ChromeOS-recovery-R1-1.0.0-test.multi-ColdKeyset.instructions' ), ], } with mock.patch.object(gs.GSContext, 'Exists', return_value=True): urls = pushimage.PushImage('/src', 'test.multi', 'R1-1.0.0') self.assertEqual(urls, EXPECTED)
def testBasicMock(self): """Simple smoke test in mock mode""" with mock.patch.object(gs.GSContext, 'Exists', return_value=True): pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0', dry_run=True, mock=True)
def testSignTypesNone(self): """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.assertFalse(self.mark_mock.called) self.assertEqual(urls, {})
def testBasic_RealBoardName(self): """Runs a simple smoke test using a real board name.""" EXPECTED = { 'canary': [('gs://chromeos-releases/canary-channel/x86-alex/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-x86-alex.instructions')], 'dev': [('gs://chromeos-releases/dev-channel/x86-alex/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-x86-alex.instructions')], } with mock.patch.object(gs.GSContext, 'Exists', return_value=True): urls = pushimage.PushImage('/src', 'x86-alex', 'R34-5126.0.0') self.assertEqual(urls, EXPECTED)
def testForceChannel(self): """Verify behavior when user has specified custom channel""" EXPECTED = { 'meep': [ ('gs://chromeos-releases/meep-channel/test.board/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board.instructions'), ], } with mock.patch.object(gs.GSContext, 'Exists', return_value=True): urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0', force_channels=('meep', )) self.assertEqual(urls, EXPECTED)
def testBasic(self): """Simple smoke test""" EXPECTED = { 'canary': [('gs://chromeos-releases/canary-channel/test.board-hi/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board-hi.instructions')], 'dev': [('gs://chromeos-releases/dev-channel/test.board-hi/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board-hi.instructions')], } with mock.patch.object(gs.GSContext, 'Exists', return_value=True): urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0', profile='hi') self.assertEqual(urls, EXPECTED)
def testSignTypesBase(self): """Only sign the requested recovery type""" EXPECTED = { 'canary': [('gs://chromeos-releases/canary-channel/test.board/5126.0.0/' 'ChromeOS-base-R34-5126.0.0-test.board.instructions')], 'dev': [('gs://chromeos-releases/dev-channel/test.board/5126.0.0/' 'ChromeOS-base-R34-5126.0.0-test.board.instructions')], } 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, 28) 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, 30) self.assertTrue(self.mark_mock.called) self.assertEqual(urls, EXPECTED)
def testBasic_SignTypesEmptyList(self): """Tests PushImage behavior when |sign_types| is empty instead of None. As part of the buildbots, PushImage function always receives a tuple for |sign_types| argument. This test checks the behavior for empty tuple. """ EXPECTED = { 'canary': [('gs://chromeos-releases/canary-channel/test.board-hi/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board-hi.instructions')], 'dev': [('gs://chromeos-releases/dev-channel/test.board-hi/5126.0.0/' 'ChromeOS-recovery-R34-5126.0.0-test.board-hi.instructions')], } with mock.patch.object(gs.GSContext, 'Exists', return_value=True): urls = pushimage.PushImage('/src', 'test.board', 'R34-5126.0.0', profile='hi', sign_types=()) self.assertEqual(urls, EXPECTED)
def testNoInsns(self): """Boards w/out insn files should get skipped""" urls = pushimage.PushImage('/src', 'a bad bad board', 'R34-5126.0.0') self.assertEqual(self.gs_mock.call_count, 0) self.assertEqual(urls, None)