diff options
author | perezju <perezju@chromium.org> | 2014-12-10 02:20:21 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-12-10 10:20:50 +0000 |
commit | 95ecc9d834a87672c3aca2e10671d021291621d2 (patch) | |
tree | 7e1d84ff154a9eac599ff9d3f9b1739351cda634 /build | |
parent | 932d110a37d97e5626199435f5f0b087fcd18dfe (diff) | |
download | chromium_src-95ecc9d834a87672c3aca2e10671d021291621d2.zip chromium_src-95ecc9d834a87672c3aca2e10671d021291621d2.tar.gz chromium_src-95ecc9d834a87672c3aca2e10671d021291621d2.tar.bz2 |
Migrate DeviceUtils.parallel to adb_wrapper
The implementation uses AdbWrapper.GetDevices to get the list of
attached devices when needed.
BUG=267773
Review URL: https://codereview.chromium.org/784103005
Cr-Commit-Position: refs/heads/master@{#307670}
Diffstat (limited to 'build')
-rw-r--r-- | build/android/pylib/device/device_utils.py | 18 | ||||
-rwxr-xr-x | build/android/pylib/device/device_utils_test.py | 28 |
2 files changed, 33 insertions, 13 deletions
diff --git a/build/android/pylib/device/device_utils.py b/build/android/pylib/device/device_utils.py index 553e960..743b1ce 100644 --- a/build/android/pylib/device/device_utils.py +++ b/build/android/pylib/device/device_utils.py @@ -1173,8 +1173,8 @@ class DeviceUtils(object): """Returns the device serial.""" return self.adb.GetDeviceSerial() - @staticmethod - def parallel(devices=None, async=False): + @classmethod + def parallel(cls, devices=None, async=False): """Creates a Parallelizer to operate over the provided list of devices. If |devices| is either |None| or an empty list, the Parallelizer will @@ -1190,10 +1190,10 @@ class DeviceUtils(object): Returns: A Parallelizer operating over |devices|. """ - if not devices or len(devices) == 0: - devices = pylib.android_commands.GetAttachedDevices() - parallelizer_type = (parallelizer.Parallelizer if async - else parallelizer.SyncParallelizer) - return parallelizer_type([ - d if isinstance(d, DeviceUtils) else DeviceUtils(d) - for d in devices]) + if not devices: + devices = adb_wrapper.AdbWrapper.GetDevices() + devices = [d if isinstance(d, cls) else cls(d) for d in devices] + if async: + return parallelizer.Parallelizer(devices) + else: + return parallelizer.SyncParallelizer(devices) diff --git a/build/android/pylib/device/device_utils_test.py b/build/android/pylib/device/device_utils_test.py index c451ef3..e396d6e 100755 --- a/build/android/pylib/device/device_utils_test.py +++ b/build/android/pylib/device/device_utils_test.py @@ -254,13 +254,18 @@ class DeviceUtilsOldImplTest(unittest.TestCase): def tearDown(self): self._get_adb_path_patch.stop() + +def _AdbWrapperMock(test_serial): + adb = mock.Mock(spec=adb_wrapper.AdbWrapper) + adb.__str__ = mock.Mock(return_value=test_serial) + adb.GetDeviceSerial.return_value = test_serial + return adb + + class DeviceUtilsNewImplTest(mock_calls.TestCase): def setUp(self): - test_serial = '0123456789abcdef' - self.adb = mock.Mock(spec=adb_wrapper.AdbWrapper) - self.adb.__str__ = mock.Mock(return_value=test_serial) - self.adb.GetDeviceSerial.return_value = test_serial + self.adb = _AdbWrapperMock('0123456789abcdef') self.device = device_utils.DeviceUtils( self.adb, default_timeout=10, default_retries=0) self.watchMethodCalls(self.call.adb, ignore=['GetDeviceSerial']) @@ -1518,6 +1523,21 @@ class DeviceUtilsStrTest(DeviceUtilsNewImplTest): self.assertEqual('0123456789abcdef', str(self.device)) +class DeviceUtilsParallelTest(mock_calls.TestCase): + + def testParallel_default(self): + test_serials = ['0123456789abcdef', 'fedcba9876543210'] + with self.assertCall( + mock.call.pylib.device.adb_wrapper.AdbWrapper.GetDevices(), + [_AdbWrapperMock(serial) for serial in test_serials]): + parallel_devices = device_utils.DeviceUtils.parallel() + for serial, device in zip(test_serials, parallel_devices.pGet(None)): + self.assertTrue( + isinstance(device, device_utils.DeviceUtils) + and serial == str(device), + 'Expected a DeviceUtils object with serial %s' % serial) + + if __name__ == '__main__': logging.getLogger().setLevel(logging.DEBUG) unittest.main(verbosity=2) |