Index: build/android/devil/android/fastboot_utils_test.py |
diff --git a/build/android/devil/android/fastboot_utils_test.py b/build/android/devil/android/fastboot_utils_test.py |
deleted file mode 100755 |
index d82e15511142a08f111cd7f9e6f37024aacd5035..0000000000000000000000000000000000000000 |
--- a/build/android/devil/android/fastboot_utils_test.py |
+++ /dev/null |
@@ -1,278 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright 2015 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-""" |
-Unit tests for the contents of fastboot_utils.py |
-""" |
- |
-# pylint: disable=protected-access,unused-argument |
- |
-import io |
-import logging |
-import unittest |
- |
-from devil import devil_env |
-from devil.android import device_errors |
-from devil.android import device_utils |
-from devil.android import fastboot_utils |
-from devil.android.sdk import fastboot |
-from devil.utils import mock_calls |
- |
-with devil_env.SysPath(devil_env.PYMOCK_PATH): |
- import mock # pylint: disable=import-error |
- |
-_BOARD = 'board_type' |
-_SERIAL = '0123456789abcdef' |
-_PARTITIONS = ['cache', 'userdata', 'system', 'bootloader', 'radio'] |
-_IMAGES = { |
- 'cache': 'cache.img', |
- 'userdata': 'userdata.img', |
- 'system': 'system.img', |
- 'bootloader': 'bootloader.img', |
- 'radio': 'radio.img', |
-} |
-_VALID_FILES = [_BOARD + '.zip', 'android-info.txt'] |
-_INVALID_FILES = ['test.zip', 'android-info.txt'] |
- |
- |
-class MockFile(object): |
- |
- def __init__(self, name='/tmp/some/file'): |
- self.file = mock.MagicMock(spec=file) |
- self.file.name = name |
- |
- def __enter__(self): |
- return self.file |
- |
- def __exit__(self, exc_type, exc_val, exc_tb): |
- pass |
- |
- @property |
- def name(self): |
- return self.file.name |
- |
- |
-def _FastbootWrapperMock(test_serial): |
- fastbooter = mock.Mock(spec=fastboot.Fastboot) |
- fastbooter.__str__ = mock.Mock(return_value=test_serial) |
- fastbooter.Devices.return_value = [test_serial] |
- return fastbooter |
- |
-def _DeviceUtilsMock(test_serial): |
- device = mock.Mock(spec=device_utils.DeviceUtils) |
- device.__str__ = mock.Mock(return_value=test_serial) |
- device.product_board = mock.Mock(return_value=_BOARD) |
- device.adb = mock.Mock() |
- return device |
- |
- |
-class FastbootUtilsTest(mock_calls.TestCase): |
- |
- def setUp(self): |
- self.device_utils_mock = _DeviceUtilsMock(_SERIAL) |
- self.fastboot_wrapper = _FastbootWrapperMock(_SERIAL) |
- self.fastboot = fastboot_utils.FastbootUtils( |
- self.device_utils_mock, fastbooter=self.fastboot_wrapper, |
- default_timeout=2, default_retries=0) |
- self.fastboot._board = _BOARD |
- |
- |
-class FastbootUtilsInitTest(FastbootUtilsTest): |
- |
- def testInitWithDeviceUtil(self): |
- f = fastboot_utils.FastbootUtils(self.device_utils_mock) |
- self.assertEqual(str(self.device_utils_mock), str(f._device)) |
- |
- def testInitWithMissing_fails(self): |
- with self.assertRaises(AttributeError): |
- fastboot_utils.FastbootUtils(None) |
- with self.assertRaises(AttributeError): |
- fastboot_utils.FastbootUtils('') |
- |
- |
-class FastbootUtilsWaitForFastbootMode(FastbootUtilsTest): |
- |
- # If this test fails by timing out after 1 second. |
- @mock.patch('time.sleep', mock.Mock()) |
- def testWaitForFastbootMode(self): |
- self.fastboot.WaitForFastbootMode() |
- |
- |
-class FastbootUtilsEnableFastbootMode(FastbootUtilsTest): |
- |
- def testEnableFastbootMode(self): |
- with self.assertCalls( |
- self.call.fastboot._device.EnableRoot(), |
- self.call.fastboot._device.adb.Reboot(to_bootloader=True), |
- self.call.fastboot.WaitForFastbootMode()): |
- self.fastboot.EnableFastbootMode() |
- |
- |
-class FastbootUtilsReboot(FastbootUtilsTest): |
- |
- def testReboot_bootloader(self): |
- with self.assertCalls( |
- self.call.fastboot.fastboot.RebootBootloader(), |
- self.call.fastboot.WaitForFastbootMode()): |
- self.fastboot.Reboot(bootloader=True) |
- |
- def testReboot_normal(self): |
- with self.assertCalls( |
- self.call.fastboot.fastboot.Reboot(), |
- self.call.fastboot._device.WaitUntilFullyBooted(timeout=mock.ANY)): |
- self.fastboot.Reboot() |
- |
- |
-class FastbootUtilsFlashPartitions(FastbootUtilsTest): |
- |
- def testFlashPartitions_wipe(self): |
- with self.assertCalls( |
- (self.call.fastboot._VerifyBoard('test'), True), |
- (self.call.fastboot._FindAndVerifyPartitionsAndImages( |
- _PARTITIONS, 'test'), _IMAGES), |
- (self.call.fastboot.fastboot.Flash('cache', 'cache.img')), |
- (self.call.fastboot.fastboot.Flash('userdata', 'userdata.img')), |
- (self.call.fastboot.fastboot.Flash('system', 'system.img')), |
- (self.call.fastboot.fastboot.Flash('bootloader', 'bootloader.img')), |
- (self.call.fastboot.Reboot(bootloader=True)), |
- (self.call.fastboot.fastboot.Flash('radio', 'radio.img')), |
- (self.call.fastboot.Reboot(bootloader=True))): |
- self.fastboot._FlashPartitions(_PARTITIONS, 'test', wipe=True) |
- |
- def testFlashPartitions_noWipe(self): |
- with self.assertCalls( |
- (self.call.fastboot._VerifyBoard('test'), True), |
- (self.call.fastboot._FindAndVerifyPartitionsAndImages( |
- _PARTITIONS, 'test'), _IMAGES), |
- (self.call.fastboot.fastboot.Flash('system', 'system.img')), |
- (self.call.fastboot.fastboot.Flash('bootloader', 'bootloader.img')), |
- (self.call.fastboot.Reboot(bootloader=True)), |
- (self.call.fastboot.fastboot.Flash('radio', 'radio.img')), |
- (self.call.fastboot.Reboot(bootloader=True))): |
- self.fastboot._FlashPartitions(_PARTITIONS, 'test') |
- |
- |
-class FastbootUtilsFastbootMode(FastbootUtilsTest): |
- |
- def testFastbootMode_good(self): |
- with self.assertCalls( |
- self.call.fastboot.EnableFastbootMode(), |
- self.call.fastboot.fastboot.SetOemOffModeCharge(False), |
- self.call.fastboot.fastboot.SetOemOffModeCharge(True), |
- self.call.fastboot.Reboot()): |
- with self.fastboot.FastbootMode() as fbm: |
- self.assertEqual(self.fastboot, fbm) |
- |
- def testFastbootMode_exception(self): |
- with self.assertCalls( |
- self.call.fastboot.EnableFastbootMode(), |
- self.call.fastboot.fastboot.SetOemOffModeCharge(False), |
- self.call.fastboot.fastboot.SetOemOffModeCharge(True), |
- self.call.fastboot.Reboot()): |
- with self.assertRaises(NotImplementedError): |
- with self.fastboot.FastbootMode() as fbm: |
- self.assertEqual(self.fastboot, fbm) |
- raise NotImplementedError |
- |
- def testFastbootMode_exceptionInEnableFastboot(self): |
- self.fastboot.EnableFastbootMode = mock.Mock() |
- self.fastboot.EnableFastbootMode.side_effect = NotImplementedError |
- with self.assertRaises(NotImplementedError): |
- with self.fastboot.FastbootMode(): |
- pass |
- |
- |
-class FastbootUtilsVerifyBoard(FastbootUtilsTest): |
- |
- def testVerifyBoard_bothValid(self): |
- mock_file = io.StringIO(u'require board=%s\n' % _BOARD) |
- with mock.patch('__builtin__.open', return_value=mock_file, create=True): |
- with mock.patch('os.listdir', return_value=_VALID_FILES): |
- self.assertTrue(self.fastboot._VerifyBoard('test')) |
- |
- def testVerifyBoard_BothNotValid(self): |
- mock_file = io.StringIO(u'abc') |
- with mock.patch('__builtin__.open', return_value=mock_file, create=True): |
- with mock.patch('os.listdir', return_value=_INVALID_FILES): |
- self.assertFalse(self.assertFalse(self.fastboot._VerifyBoard('test'))) |
- |
- def testVerifyBoard_FileNotFoundZipValid(self): |
- with mock.patch('os.listdir', return_value=[_BOARD + '.zip']): |
- self.assertTrue(self.fastboot._VerifyBoard('test')) |
- |
- def testVerifyBoard_ZipNotFoundFileValid(self): |
- mock_file = io.StringIO(u'require board=%s\n' % _BOARD) |
- with mock.patch('__builtin__.open', return_value=mock_file, create=True): |
- with mock.patch('os.listdir', return_value=['android-info.txt']): |
- self.assertTrue(self.fastboot._VerifyBoard('test')) |
- |
- def testVerifyBoard_zipNotValidFileIs(self): |
- mock_file = io.StringIO(u'require board=%s\n' % _BOARD) |
- with mock.patch('__builtin__.open', return_value=mock_file, create=True): |
- with mock.patch('os.listdir', return_value=_INVALID_FILES): |
- self.assertTrue(self.fastboot._VerifyBoard('test')) |
- |
- def testVerifyBoard_fileNotValidZipIs(self): |
- mock_file = io.StringIO(u'require board=WrongBoard') |
- with mock.patch('__builtin__.open', return_value=mock_file, create=True): |
- with mock.patch('os.listdir', return_value=_VALID_FILES): |
- self.assertFalse(self.fastboot._VerifyBoard('test')) |
- |
- def testVerifyBoard_noBoardInFileValidZip(self): |
- mock_file = io.StringIO(u'Regex wont match') |
- with mock.patch('__builtin__.open', return_value=mock_file, create=True): |
- with mock.patch('os.listdir', return_value=_VALID_FILES): |
- self.assertTrue(self.fastboot._VerifyBoard('test')) |
- |
- def testVerifyBoard_noBoardInFileInvalidZip(self): |
- mock_file = io.StringIO(u'Regex wont match') |
- with mock.patch('__builtin__.open', return_value=mock_file, create=True): |
- with mock.patch('os.listdir', return_value=_INVALID_FILES): |
- self.assertFalse(self.fastboot._VerifyBoard('test')) |
- |
-class FastbootUtilsFindAndVerifyPartitionsAndImages(FastbootUtilsTest): |
- |
- def testFindAndVerifyPartitionsAndImages_valid(self): |
- PARTITIONS = [ |
- 'bootloader', 'radio', 'boot', 'recovery', 'system', 'userdata', 'cache' |
- ] |
- files = [ |
- 'bootloader-test-.img', |
- 'radio123.img', |
- 'boot.img', |
- 'recovery.img', |
- 'system.img', |
- 'userdata.img', |
- 'cache.img' |
- ] |
- return_check = { |
- 'bootloader': 'test/bootloader-test-.img', |
- 'radio': 'test/radio123.img', |
- 'boot': 'test/boot.img', |
- 'recovery': 'test/recovery.img', |
- 'system': 'test/system.img', |
- 'userdata': 'test/userdata.img', |
- 'cache': 'test/cache.img', |
- } |
- |
- with mock.patch('os.listdir', return_value=files): |
- return_value = self.fastboot._FindAndVerifyPartitionsAndImages( |
- PARTITIONS, 'test') |
- self.assertDictEqual(return_value, return_check) |
- |
- def testFindAndVerifyPartitionsAndImages_badPartition(self): |
- with mock.patch('os.listdir', return_value=['test']): |
- with self.assertRaises(KeyError): |
- self.fastboot._FindAndVerifyPartitionsAndImages(['test'], 'test') |
- |
- def testFindAndVerifyPartitionsAndImages_noFile(self): |
- with mock.patch('os.listdir', return_value=['test']): |
- with self.assertRaises(device_errors.FastbootCommandFailedError): |
- self.fastboot._FindAndVerifyPartitionsAndImages(['cache'], 'test') |
- |
- |
-if __name__ == '__main__': |
- logging.getLogger().setLevel(logging.DEBUG) |
- unittest.main(verbosity=2) |