Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """ | 5 """ |
| 6 Provides a variety of device interactions based on adb. | 6 Provides a variety of device interactions based on adb. |
| 7 | 7 |
| 8 Eventually, this will be based on adb_wrapper. | 8 Eventually, this will be based on adb_wrapper. |
| 9 """ | 9 """ |
| 10 # pylint: disable=W0613 | 10 # pylint: disable=W0613 |
| 11 | 11 |
| 12 import multiprocessing | 12 import multiprocessing |
| 13 import os | 13 import os |
| 14 import sys | 14 import sys |
| 15 import time | |
| 15 | 16 |
| 16 import pylib.android_commands | 17 import pylib.android_commands |
| 17 from pylib.device import adb_wrapper | 18 from pylib.device import adb_wrapper |
| 18 from pylib.device import decorators | 19 from pylib.device import decorators |
| 19 from pylib.device import device_errors | 20 from pylib.device import device_errors |
| 20 | 21 |
| 21 CHROME_SRC_DIR = os.path.abspath( | 22 CHROME_SRC_DIR = os.path.abspath( |
| 22 os.path.join(os.path.dirname(__file__), '..', '..', '..', '..')) | 23 os.path.join(os.path.dirname(__file__), '..', '..', '..', '..')) |
| 23 sys.path.append(os.path.join( | 24 sys.path.append(os.path.join( |
| 24 CHROME_SRC_DIR, 'third_party', 'android_testrunner')) | 25 CHROME_SRC_DIR, 'third_party', 'android_testrunner')) |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 143 Args: | 144 Args: |
| 144 timeout: Same as for |IsOnline|. | 145 timeout: Same as for |IsOnline|. |
| 145 retries: Same as for |IsOnline|. | 146 retries: Same as for |IsOnline|. |
| 146 Raises: | 147 Raises: |
| 147 CommandFailedError if root could not be enabled. | 148 CommandFailedError if root could not be enabled. |
| 148 """ | 149 """ |
| 149 if not self.old_interface.EnableAdbRoot(): | 150 if not self.old_interface.EnableAdbRoot(): |
| 150 raise device_errors.CommandFailedError( | 151 raise device_errors.CommandFailedError( |
| 151 'adb root', 'Could not enable root.') | 152 'adb root', 'Could not enable root.') |
| 152 | 153 |
| 154 @decorators.WithTimeoutAndRetriesFromInstance( | |
| 155 '_default_timeout', '_default_retries') | |
| 156 def GetExternalStoragePath(self, timeout=None, retries=None): | |
| 157 """ Get the device's path to its SD card. | |
| 158 | |
| 159 Args: | |
| 160 timeout: Same as for |IsOnline|. | |
| 161 retries: Same as for |IsOnline|. | |
| 162 Returns: | |
| 163 The device's path to its SD card. | |
| 164 """ | |
| 165 try: | |
| 166 return self.old_interface.GetExternalStorage() | |
| 167 except AssertionError as e: | |
| 168 raise device_errors.CommandFailedError(str(e)) | |
| 169 | |
| 170 @decorators.WithTimeoutAndRetriesFromInstance( | |
| 171 '_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 -
| |
| 172 def WaitUntilFullyBooted(self, wifi=False, timeout=None, retries=None): | |
| 173 """ Wait for the device to fully boot. | |
| 174 | |
| 175 This means waiting for the device to boot, the package manager to be | |
| 176 available, and the SD card to be ready. It can optionally mean waiting | |
| 177 for wifi to come up, too. | |
| 178 | |
| 179 Args: | |
| 180 wifi: A boolean indicating if we should wait for wifi to come up or not. | |
| 181 timeout: Same as for |IsOnline|. | |
| 182 retries: Same as for |IsOnline|. | |
| 183 Raises: | |
| 184 CommandTimeoutError if one of the component waits times out. | |
| 185 DeviceUnreachableError if the device becomes unresponsive. | |
| 186 """ | |
| 187 try: | |
| 188 self.old_interface.WaitForSystemBootCompleted(timeout) | |
| 189 self.old_interface.WaitForDevicePm() | |
| 190 self.old_interface.WaitForSdCardReady(timeout) | |
| 191 if wifi: | |
| 192 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
| |
| 193 while not wifi_enabled: | |
| 194 wifi_results = self.old_interface.RunShellCommand('dumpsys wifi') | |
| 195 wifi_enabled = 'Wi-Fi is enabled' in wifi_results | |
| 196 time.sleep(0.1) | |
| 197 except errors.DeviceUnresponsiveError as e: | |
| 198 raise device_errors.DeviceUnreachableError(str(e)) | |
| 199 except errors.WaitForResponseTimedOutError as e: | |
| 200 raise device_errors.CommandTimeoutError(str(e)) | |
| 201 | |
| OLD | NEW |