Chromium Code Reviews| Index: build/android/pylib/device/device_utils.py |
| diff --git a/build/android/pylib/device/device_utils.py b/build/android/pylib/device/device_utils.py |
| index ea1019d3de996f44b6bcb95785541b7570ee4344..d9159afc450d4be0af2bfdf0e5912b42b0c0063c 100644 |
| --- a/build/android/pylib/device/device_utils.py |
| +++ b/build/android/pylib/device/device_utils.py |
| @@ -12,6 +12,7 @@ Eventually, this will be based on adb_wrapper. |
| import multiprocessing |
| import os |
| import sys |
| +import time |
| import pylib.android_commands |
| from pylib.device import adb_wrapper |
| @@ -150,3 +151,51 @@ class DeviceUtils(object): |
| raise device_errors.CommandFailedError( |
| 'adb root', 'Could not enable root.') |
| + @decorators.WithTimeoutAndRetriesFromInstance( |
| + '_default_timeout', '_default_retries') |
| + def GetExternalStoragePath(self, timeout=None, retries=None): |
| + """ Get the device's path to its SD card. |
| + |
| + Args: |
| + timeout: Same as for |IsOnline|. |
| + retries: Same as for |IsOnline|. |
| + Returns: |
| + The device's path to its SD card. |
| + """ |
| + try: |
| + return self.old_interface.GetExternalStorage() |
| + except AssertionError as e: |
| + raise device_errors.CommandFailedError(str(e)) |
| + |
| + @decorators.WithTimeoutAndRetriesFromInstance( |
| + '_default_timeout', '_default_retries') |
|
craigdh
2014/05/21 22:25:00
duplicated strings should be module level constant
jbudorick
2014/05/22 04:49:58
Wound up doing what you suggested on the last CL -
|
| + def WaitUntilFullyBooted(self, wifi=False, timeout=None, retries=None): |
| + """ Wait for the device to fully boot. |
| + |
| + This means waiting for the device to boot, the package manager to be |
| + available, and the SD card to be ready. It can optionally mean waiting |
| + for wifi to come up, too. |
| + |
| + Args: |
| + wifi: A boolean indicating if we should wait for wifi to come up or not. |
| + timeout: Same as for |IsOnline|. |
| + retries: Same as for |IsOnline|. |
| + Raises: |
| + CommandTimeoutError if one of the component waits times out. |
| + DeviceUnreachableError if the device becomes unresponsive. |
| + """ |
| + try: |
| + self.old_interface.WaitForSystemBootCompleted(timeout) |
| + self.old_interface.WaitForDevicePm() |
| + self.old_interface.WaitForSdCardReady(timeout) |
| + if wifi: |
| + wifi_enabled = False |
|
craigdh
2014/05/21 22:25:00
these five lines can be just two:
while 'Wi-Fi is
jbudorick
2014/05/22 04:49:58
Done, though sadly it doesn't fit in 80 characters
|
| + while not wifi_enabled: |
| + wifi_results = self.old_interface.RunShellCommand('dumpsys wifi') |
| + wifi_enabled = 'Wi-Fi is enabled' in wifi_results |
| + time.sleep(0.1) |
| + except errors.DeviceUnresponsiveError as e: |
| + raise device_errors.DeviceUnreachableError(str(e)) |
| + except errors.WaitForResponseTimedOutError as e: |
| + raise device_errors.CommandTimeoutError(str(e)) |
| + |