New yapf formatting. (#603)
diff --git a/mobly/asserts.py b/mobly/asserts.py
index 8716f93..05f99de 100644
--- a/mobly/asserts.py
+++ b/mobly/asserts.py
@@ -99,8 +99,9 @@
extras: An optional field for extra information to be included in
test result.
"""
- context = _AssertRaisesContext(
- expected_exception, expected_regex, extras=extras)
+ context = _AssertRaisesContext(expected_exception,
+ expected_regex,
+ extras=extras)
return context
@@ -278,8 +279,8 @@
exc_name = self.expected.__name__
except AttributeError:
exc_name = str(self.expected)
- raise signals.TestFailure(
- '%s not raised' % exc_name, extras=self.extras)
+ raise signals.TestFailure('%s not raised' % exc_name,
+ extras=self.extras)
if not issubclass(exc_type, self.expected):
# let unexpected exceptions pass through
return False
@@ -292,7 +293,7 @@
expected_regexp = re.compile(expected_regexp)
if not expected_regexp.search(str(exc_value)):
raise signals.TestFailure(
- '"%s" does not match "%s"' % (expected_regexp.pattern,
- str(exc_value)),
+ '"%s" does not match "%s"' %
+ (expected_regexp.pattern, str(exc_value)),
extras=self.extras)
return True
diff --git a/mobly/base_instrumentation_test.py b/mobly/base_instrumentation_test.py
index efbc993..f8443dd 100644
--- a/mobly/base_instrumentation_test.py
+++ b/mobly/base_instrumentation_test.py
@@ -958,11 +958,10 @@
instrumentation_block[0] = self._parse_line(
instrumentation_block[0], line)
- device.adb.instrument(
- package=package,
- options=options,
- runner=runner,
- handler=parse_instrumentation)
+ device.adb.instrument(package=package,
+ options=options,
+ runner=runner,
+ handler=parse_instrumentation)
return self._finish_parsing(instrumentation_block[0])
diff --git a/mobly/config_parser.py b/mobly/config_parser.py
index d26f34b..afb2449 100644
--- a/mobly/config_parser.py
+++ b/mobly/config_parser.py
@@ -39,8 +39,8 @@
"""
required_key = keys.Config.key_testbed.value
if required_key not in test_config:
- raise MoblyConfigError(
- 'Required key %s missing in test config.' % required_key)
+ raise MoblyConfigError('Required key %s missing in test config.' %
+ required_key)
def _validate_testbed_name(name):
@@ -111,8 +111,8 @@
if len(tbs) != len(tb_filters):
raise MoblyConfigError(
'Expect to find %d test bed configs, found %d. Check if'
- ' you have the correct test bed names.' % (len(tb_filters),
- len(tbs)))
+ ' you have the correct test bed names.' %
+ (len(tb_filters), len(tbs)))
configs[keys.Config.key_testbed.value] = tbs
mobly_params = configs.get(keys.Config.key_mobly_params.value, {})
# Decide log path.
diff --git a/mobly/controller_manager.py b/mobly/controller_manager.py
index e03222c..acba8db 100644
--- a/mobly/controller_manager.py
+++ b/mobly/controller_manager.py
@@ -153,8 +153,8 @@
# logging them.
for name, module in self._controller_modules.items():
logging.debug('Destroying %s.', name)
- with expects.expect_no_raises(
- 'Exception occurred destroying %s.' % name):
+ with expects.expect_no_raises('Exception occurred destroying %s.' %
+ name):
module.destroy(self._controller_objects[name])
self._controller_objects = collections.OrderedDict()
self._controller_modules = {}
@@ -178,15 +178,17 @@
controller_info = module.get_info(
copy.copy(self._controller_objects[controller_module_name]))
except AttributeError:
- logging.warning('No optional debug info found for controller '
- '%s. To provide it, implement `get_info`.',
- controller_module_name)
+ logging.warning(
+ 'No optional debug info found for controller '
+ '%s. To provide it, implement `get_info`.',
+ controller_module_name)
try:
yaml.dump(controller_info)
except TypeError:
- logging.warning('The info of controller %s in class "%s" is not '
- 'YAML serializable! Coercing it to string.',
- controller_module_name, self._class_name)
+ logging.warning(
+ 'The info of controller %s in class "%s" is not '
+ 'YAML serializable! Coercing it to string.',
+ controller_module_name, self._class_name)
controller_info = str(controller_info)
return records.ControllerInfoRecord(
self._class_name, module.MOBLY_CONTROLLER_CONFIG_NAME,
diff --git a/mobly/controllers/__init__.py b/mobly/controllers/__init__.py
index 2fe4434..58e0d91 100644
--- a/mobly/controllers/__init__.py
+++ b/mobly/controllers/__init__.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/mobly/controllers/android_device.py b/mobly/controllers/android_device.py
index a9dfe98..e26842a 100644
--- a/mobly/controllers/android_device.py
+++ b/mobly/controllers/android_device.py
@@ -107,8 +107,9 @@
for ad in ads:
if ad.serial not in valid_ad_identifiers:
- raise DeviceError(ad, 'Android device is specified in config but'
- ' is not attached.')
+ raise DeviceError(
+ ad, 'Android device is specified in config but is not '
+ 'attached.')
_start_services_on_ads(ads)
return ads
@@ -153,8 +154,9 @@
start_logcat = not getattr(ad, KEY_SKIP_LOGCAT,
DEFAULT_VALUE_SKIP_LOGCAT)
try:
- ad.services.register(
- SERVICE_NAME_LOGCAT, logcat.Logcat, start_service=start_logcat)
+ ad.services.register(SERVICE_NAME_LOGCAT,
+ logcat.Logcat,
+ start_service=start_logcat)
except Exception:
is_required = getattr(ad, KEY_DEVICE_REQUIRED,
DEFAULT_VALUE_DEVICE_REQUIRED)
@@ -406,10 +408,9 @@
begin_time = mobly_logger.normalize_log_line_timestamp(str(begin_time))
def take_br(test_name, begin_time, ad, destination):
- ad.take_bug_report(
- test_name=test_name,
- begin_time=begin_time,
- destination=destination)
+ ad.take_bug_report(test_name=test_name,
+ begin_time=begin_time,
+ destination=destination)
args = [(test_name, begin_time, ad, destination) for ad in ads]
utils.concurrent_exec(take_br, args)
@@ -449,9 +450,8 @@
self._log_path = os.path.join(
self._log_path_base, 'AndroidDevice%s' % self._normalized_serial)
self._debug_tag = self._serial
- self.log = AndroidDeviceLoggerAdapter(logging.getLogger(), {
- 'tag': self.debug_tag
- })
+ self.log = AndroidDeviceLoggerAdapter(logging.getLogger(),
+ {'tag': self.debug_tag})
self._build_info = None
self._is_rebooting = False
self.adb = adb.AdbProxy(serial)
@@ -933,8 +933,9 @@
else:
# shell=True as this command redirects the stdout to a local file
# using shell redirection.
- self.adb.bugreport(
- ' > "%s"' % full_out_path, shell=True, timeout=timeout)
+ self.adb.bugreport(' > "%s"' % full_out_path,
+ shell=True,
+ timeout=timeout)
self.log.info('Bugreport for %s taken at %s.', test_name,
full_out_path)
return full_out_path
diff --git a/mobly/controllers/android_device_lib/__init__.py b/mobly/controllers/android_device_lib/__init__.py
index 2fe4434..58e0d91 100644
--- a/mobly/controllers/android_device_lib/__init__.py
+++ b/mobly/controllers/android_device_lib/__init__.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/mobly/controllers/android_device_lib/adb.py b/mobly/controllers/android_device_lib/adb.py
index e6658fd..1b032a0 100644
--- a/mobly/controllers/android_device_lib/adb.py
+++ b/mobly/controllers/android_device_lib/adb.py
@@ -65,8 +65,8 @@
def __str__(self):
return ('Error executing adb cmd "%s". ret: %d, stdout: %s, stderr: %s'
- ) % (utils.cli_cmd_to_string(self.cmd), self.ret_code,
- self.stdout, self.stderr)
+ ) % (utils.cli_cmd_to_string(
+ self.cmd), self.ret_code, self.stdout, self.stderr)
class AdbTimeoutError(Error):
@@ -162,11 +162,13 @@
if timeout and timeout <= 0:
raise ValueError('Timeout is not a positive value: %s' % timeout)
try:
- (ret, out, err) = utils.run_command(
- args, shell=shell, timeout=timeout)
+ (ret, out, err) = utils.run_command(args,
+ shell=shell,
+ timeout=timeout)
except psutil.TimeoutExpired:
- raise AdbTimeoutError(
- cmd=args, timeout=timeout, serial=self.serial)
+ raise AdbTimeoutError(cmd=args,
+ timeout=timeout,
+ serial=self.serial)
if stderr:
stderr.write(err)
@@ -175,12 +177,11 @@
if ret == 0:
return out
else:
- raise AdbError(
- cmd=args,
- stdout=out,
- stderr=err,
- ret_code=ret,
- serial=self.serial)
+ raise AdbError(cmd=args,
+ stdout=out,
+ stderr=err,
+ ret_code=ret,
+ serial=self.serial)
def _execute_and_process_stdout(self, args, shell, handler):
"""Executes adb commands and processes the stdout with a handler.
@@ -198,12 +199,11 @@
Raises:
AdbError: The adb command exit code is not 0.
"""
- proc = subprocess.Popen(
- args,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- shell=shell,
- bufsize=1)
+ proc = subprocess.Popen(args,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ shell=shell,
+ bufsize=1)
out = '[elided, processed via handler]'
try:
# Even if the process dies, stdout.readline still works
@@ -270,14 +270,17 @@
def _exec_adb_cmd(self, name, args, shell, timeout, stderr):
adb_cmd = self._construct_adb_cmd(name, args, shell=shell)
- out = self._exec_cmd(
- adb_cmd, shell=shell, timeout=timeout, stderr=stderr)
+ out = self._exec_cmd(adb_cmd,
+ shell=shell,
+ timeout=timeout,
+ stderr=stderr)
return out
def _execute_adb_and_process_stdout(self, name, args, shell, handler):
adb_cmd = self._construct_adb_cmd(name, args, shell=shell)
- out = self._execute_and_process_stdout(
- adb_cmd, shell=shell, handler=handler)
+ out = self._execute_and_process_stdout(adb_cmd,
+ shell=shell,
+ handler=handler)
return out
def _parse_getprop_output(self, output):
@@ -341,8 +344,8 @@
# The ADB getprop command can randomly return empty string, so try
# multiple times. This value should always be non-empty if the device
# in a working state.
- raw_output = self.shell(
- ['getprop'], timeout=DEFAULT_GETPROP_TIMEOUT_SEC)
+ raw_output = self.shell(['getprop'],
+ timeout=DEFAULT_GETPROP_TIMEOUT_SEC)
properties = self._parse_getprop_output(raw_output)
if properties:
for name in prop_names:
@@ -374,8 +377,11 @@
def forward(self, args=None, shell=False):
with ADB_PORT_LOCK:
- return self._exec_adb_cmd(
- 'forward', args, shell, timeout=None, stderr=None)
+ return self._exec_adb_cmd('forward',
+ args,
+ shell,
+ timeout=None,
+ stderr=None)
def instrument(self, package, options=None, runner=None, handler=None):
"""Runs an instrumentation command on the device.
@@ -424,12 +430,11 @@
instrumentation_command)
if handler is None:
# Flow kept for backwards-compatibility reasons
- self._exec_adb_cmd(
- 'shell',
- instrumentation_command,
- shell=False,
- timeout=None,
- stderr=None)
+ self._exec_adb_cmd('shell',
+ instrumentation_command,
+ shell=False,
+ timeout=None,
+ stderr=None)
else:
return self._execute_adb_and_process_stdout(
'shell', instrumentation_command, shell=False, handler=handler)
@@ -451,7 +456,10 @@
Returns:
The output of the adb command run if exit code is 0.
"""
- return self._exec_adb_cmd(
- name, args, shell=shell, timeout=timeout, stderr=stderr)
+ return self._exec_adb_cmd(name,
+ args,
+ shell=shell,
+ timeout=timeout,
+ stderr=stderr)
return adb_call
diff --git a/mobly/controllers/android_device_lib/callback_handler.py b/mobly/controllers/android_device_lib/callback_handler.py
index 753f3da..868c8da 100644
--- a/mobly/controllers/android_device_lib/callback_handler.py
+++ b/mobly/controllers/android_device_lib/callback_handler.py
@@ -101,8 +101,8 @@
raise TimeoutError(
self._ad,
'Timed out after waiting %ss for event "%s" triggered by'
- ' %s (%s).' % (timeout, event_name, self._method_name,
- self._id))
+ ' %s (%s).' %
+ (timeout, event_name, self._method_name, self._id))
raise
return snippet_event.from_dict(raw_event)
diff --git a/mobly/controllers/android_device_lib/event_dispatcher.py b/mobly/controllers/android_device_lib/event_dispatcher.py
index 3b91d0f..1785716 100644
--- a/mobly/controllers/android_device_lib/event_dispatcher.py
+++ b/mobly/controllers/android_device_lib/event_dispatcher.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -112,8 +112,8 @@
self.lock.acquire()
try:
if event_name in self.handlers:
- raise DuplicateError('A handler for {} already exists'.format(
- event_name))
+ raise DuplicateError(
+ 'A handler for {} already exists'.format(event_name))
self.handlers[event_name] = (handler, args)
finally:
self.lock.release()
@@ -182,8 +182,8 @@
e_queue = self.get_event_q(event_name)
if not e_queue:
- raise TypeError("Failed to get an event queue for {}".format(
- event_name))
+ raise TypeError(
+ "Failed to get an event queue for {}".format(event_name))
try:
# Block for timeout
diff --git a/mobly/controllers/android_device_lib/fastboot.py b/mobly/controllers/android_device_lib/fastboot.py
index 8888633..d62870a 100644
--- a/mobly/controllers/android_device_lib/fastboot.py
+++ b/mobly/controllers/android_device_lib/fastboot.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/mobly/controllers/android_device_lib/service_manager.py b/mobly/controllers/android_device_lib/service_manager.py
index cc9c133..bb56e77 100644
--- a/mobly/controllers/android_device_lib/service_manager.py
+++ b/mobly/controllers/android_device_lib/service_manager.py
@@ -115,30 +115,30 @@
"""Starts all inactive service instances."""
for alias, service in self._service_objects.items():
if not service.is_alive:
- with expects.expect_no_raises(
- 'Failed to start service "%s".' % alias):
+ with expects.expect_no_raises('Failed to start service "%s".' %
+ alias):
service.start()
def stop_all(self):
"""Stops all active service instances."""
for alias, service in self._service_objects.items():
if service.is_alive:
- with expects.expect_no_raises(
- 'Failed to stop service "%s".' % alias):
+ with expects.expect_no_raises('Failed to stop service "%s".' %
+ alias):
service.stop()
def pause_all(self):
"""Pauses all service instances."""
for alias, service in self._service_objects.items():
- with expects.expect_no_raises(
- 'Failed to pause service "%s".' % alias):
+ with expects.expect_no_raises('Failed to pause service "%s".' %
+ alias):
service.pause()
def resume_all(self):
"""Resumes all service instances."""
for alias, service in self._service_objects.items():
- with expects.expect_no_raises(
- 'Failed to resume service "%s".' % alias):
+ with expects.expect_no_raises('Failed to resume service "%s".' %
+ alias):
service.resume()
def __getattr__(self, name):
diff --git a/mobly/controllers/android_device_lib/services/logcat.py b/mobly/controllers/android_device_lib/services/logcat.py
index b5730f0..f3d4238 100644
--- a/mobly/controllers/android_device_lib/services/logcat.py
+++ b/mobly/controllers/android_device_lib/services/logcat.py
@@ -157,8 +157,8 @@
full_adblog_path = os.path.join(adb_excerpt_path, out_name)
with io.open(full_adblog_path, 'w', encoding='utf-8') as out:
in_file = self.adb_logcat_file_path
- with io.open(
- in_file, 'r', encoding='utf-8', errors='replace') as f:
+ with io.open(in_file, 'r', encoding='utf-8',
+ errors='replace') as f:
in_range = False
while True:
line = None
diff --git a/mobly/controllers/android_device_lib/services/sl4a_service.py b/mobly/controllers/android_device_lib/services/sl4a_service.py
index 66311a7..6560444 100644
--- a/mobly/controllers/android_device_lib/services/sl4a_service.py
+++ b/mobly/controllers/android_device_lib/services/sl4a_service.py
@@ -26,7 +26,7 @@
"""
def __init__(self, device, configs=None):
- del configs # Never used.
+ del configs # Never used.
self._ad = device
self._sl4a_client = None
diff --git a/mobly/controllers/android_device_lib/sl4a_client.py b/mobly/controllers/android_device_lib/sl4a_client.py
index 9dd4331..7b168d9 100644
--- a/mobly/controllers/android_device_lib/sl4a_client.py
+++ b/mobly/controllers/android_device_lib/sl4a_client.py
@@ -59,8 +59,8 @@
out = self._adb.shell('pm list package')
if not utils.grep('com.googlecode.android_scripting', out):
raise jsonrpc_client_base.AppStartError(
- self._ad, '%s is not installed on %s' % (_APP_NAME,
- self._adb.serial))
+ self._ad,
+ '%s is not installed on %s' % (_APP_NAME, self._adb.serial))
self.disable_hidden_api_blacklist()
# sl4a has problems connecting after disconnection, so kill the apk and
@@ -145,10 +145,9 @@
started = True
break
except:
- self.log.debug(
- '%s is not yet running, retrying',
- self.app_name,
- exc_info=True)
+ self.log.debug('%s is not yet running, retrying',
+ self.app_name,
+ exc_info=True)
time.sleep(1)
if not started:
raise jsonrpc_client_base.AppRestoreConnectionError(
@@ -161,8 +160,8 @@
event_client = Sl4aClient(self._ad)
event_client.host_port = self.host_port
event_client.device_port = self.device_port
- event_client.connect(
- uid=self.uid, cmd=jsonrpc_client_base.JsonRpcCommand.CONTINUE)
+ event_client.connect(uid=self.uid,
+ cmd=jsonrpc_client_base.JsonRpcCommand.CONTINUE)
ed = event_dispatcher.EventDispatcher(event_client)
ed.start()
return ed
diff --git a/mobly/controllers/android_device_lib/snippet_client.py b/mobly/controllers/android_device_lib/snippet_client.py
index c33f373..cc6e74a 100644
--- a/mobly/controllers/android_device_lib/snippet_client.py
+++ b/mobly/controllers/android_device_lib/snippet_client.py
@@ -42,8 +42,8 @@
_LAUNCH_CMD = ('%s am instrument -w -e action start %s/' +
_INSTRUMENTATION_RUNNER_PACKAGE)
-_STOP_CMD = (
- 'am instrument -w -e action stop %s/' + _INSTRUMENTATION_RUNNER_PACKAGE)
+_STOP_CMD = ('am instrument -w -e action stop %s/' +
+ _INSTRUMENTATION_RUNNER_PACKAGE)
# Test that uses UiAutomation requires the shell session to be maintained while
# test is in progress. However, this requirement does not hold for the test that
@@ -180,7 +180,8 @@
# Yaaay! We're done!
self.log.debug('Snippet %s started after %.1fs on host port %s',
- self.package, time.time() - start_time, self.host_port)
+ self.package,
+ time.time() - start_time, self.host_port)
def restore_app_connection(self, port=None):
"""Restores the app after device got reconnected.
@@ -210,8 +211,8 @@
raise jsonrpc_client_base.AppRestoreConnectionError(
self._ad,
('Failed to restore app connection for %s at host port %s, '
- 'device port %s') % (self.package, self.host_port,
- self.device_port))
+ 'device port %s') %
+ (self.package, self.host_port, self.device_port))
# Because the previous connection was lost, update self._proc
self._proc = None
@@ -265,9 +266,9 @@
'%s is not installed.' % self.package)
# Check that the app is instrumented.
out = self._adb.shell('pm list instrumentation')
- matched_out = utils.grep('^instrumentation:%s/%s' %
- (self.package,
- _INSTRUMENTATION_RUNNER_PACKAGE), out)
+ matched_out = utils.grep(
+ '^instrumentation:%s/%s' %
+ (self.package, _INSTRUMENTATION_RUNNER_PACKAGE), out)
if not matched_out:
raise AppStartPreCheckError(
self._ad,
diff --git a/mobly/controllers/android_device_lib/snippet_event.py b/mobly/controllers/android_device_lib/snippet_event.py
index 1ead83a..c717765 100644
--- a/mobly/controllers/android_device_lib/snippet_event.py
+++ b/mobly/controllers/android_device_lib/snippet_event.py
@@ -22,11 +22,10 @@
Returns:
A SnippetEvent object.
"""
- return SnippetEvent(
- callback_id=event_dict['callbackId'],
- name=event_dict['name'],
- creation_time=event_dict['time'],
- data=event_dict['data'])
+ return SnippetEvent(callback_id=event_dict['callbackId'],
+ name=event_dict['name'],
+ creation_time=event_dict['time'],
+ data=event_dict['data'])
class SnippetEvent(object):
diff --git a/mobly/controllers/attenuator.py b/mobly/controllers/attenuator.py
index 6b51137..a8faee3 100644
--- a/mobly/controllers/attenuator.py
+++ b/mobly/controllers/attenuator.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/mobly/controllers/attenuator_lib/minicircuits.py b/mobly/controllers/attenuator_lib/minicircuits.py
index ab55a6c..84b946a 100644
--- a/mobly/controllers/attenuator_lib/minicircuits.py
+++ b/mobly/controllers/attenuator_lib/minicircuits.py
@@ -1,17 +1,16 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
"""
This module has the class for controlling Mini-Circuits RCDAT series
attenuators over Telnet.
@@ -30,6 +29,7 @@
Attributes:
path_count: The number of signal attenuation path this device has.
"""
+
def __init__(self, path_count=1):
self.path_count = path_count
# The telnet client used to communicate with the attenuator device.
diff --git a/mobly/controllers/attenuator_lib/telnet_scpi_client.py b/mobly/controllers/attenuator_lib/telnet_scpi_client.py
index cb3243a..9fddb0c 100644
--- a/mobly/controllers/attenuator_lib/telnet_scpi_client.py
+++ b/mobly/controllers/attenuator_lib/telnet_scpi_client.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -31,6 +31,7 @@
instruments. It should only be used by those implemention control libraries
and not by any user code directly.
"""
+
def __init__(self, tx_cmd_separator="\n", rx_cmd_separator="\n",
prompt=""):
self._tn = None
@@ -77,7 +78,7 @@
"Telnet command failed to return valid data")
ret_text = ret_text.decode()
- ret_text = ret_text.strip(self.tx_cmd_separator + self.rx_cmd_separator
- + self.prompt)
+ ret_text = ret_text.strip(self.tx_cmd_separator +
+ self.rx_cmd_separator + self.prompt)
return ret_text
diff --git a/mobly/controllers/monsoon.py b/mobly/controllers/monsoon.py
index 2f81ed6..337cdb7 100644
--- a/mobly/controllers/monsoon.py
+++ b/mobly/controllers/monsoon.py
@@ -346,7 +346,8 @@
seq, _type, x, y = struct.unpack("BBBB", _bytes[:4])
data = [
struct.unpack(">hhhh", _bytes[x:x + 8])
- for x in range(4, len(_bytes) - 8, 8)
+ for x in range(4,
+ len(_bytes) - 8, 8)
]
if self._last_seq and seq & 0xF != (self._last_seq + 1) & 0xF:
@@ -378,8 +379,8 @@
# See http://wiki/Main/MonsoonProtocol for details on these values.
if self._coarse_ref != self._coarse_zero:
- self._coarse_scale = 2.88 / (
- self._coarse_ref - self._coarse_zero)
+ self._coarse_scale = 2.88 / (self._coarse_ref -
+ self._coarse_zero)
if self._fine_ref != self._fine_zero:
self._fine_scale = 0.0332 / (self._fine_ref - self._fine_zero)
@@ -797,12 +798,11 @@
pass
self.mon.StopDataCollection()
try:
- return MonsoonData(
- current_values,
- timestamps,
- sample_hz,
- voltage,
- offset=sample_offset)
+ return MonsoonData(current_values,
+ timestamps,
+ sample_hz,
+ voltage,
+ offset=sample_offset)
except:
return None
diff --git a/mobly/controllers/sniffer.py b/mobly/controllers/sniffer.py
index 121a0f8..2408212 100644
--- a/mobly/controllers/sniffer.py
+++ b/mobly/controllers/sniffer.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -41,9 +41,10 @@
module_name = "mobly.controllers.sniffer_lib.{}.{}".format(
sniffer_type, sniffer_subtype)
module = importlib.import_module(module_name)
- objs.append(module.Sniffer(interface,
- logging.getLogger(),
- base_configs=base_configs))
+ objs.append(
+ module.Sniffer(interface,
+ logging.getLogger(),
+ base_configs=base_configs))
return objs
diff --git a/mobly/controllers/sniffer_lib/__init__.py b/mobly/controllers/sniffer_lib/__init__.py
index 2fe4434..58e0d91 100644
--- a/mobly/controllers/sniffer_lib/__init__.py
+++ b/mobly/controllers/sniffer_lib/__init__.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/mobly/controllers/sniffer_lib/local/__init__.py b/mobly/controllers/sniffer_lib/local/__init__.py
index 2fe4434..58e0d91 100644
--- a/mobly/controllers/sniffer_lib/local/__init__.py
+++ b/mobly/controllers/sniffer_lib/local/__init__.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
diff --git a/mobly/controllers/sniffer_lib/local/local_base.py b/mobly/controllers/sniffer_lib/local/local_base.py
index d381c7a..3c1d108 100644
--- a/mobly/controllers/sniffer_lib/local/local_base.py
+++ b/mobly/controllers/sniffer_lib/local/local_base.py
@@ -1,17 +1,16 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
"""
Class for Local sniffers - i.e. running on the local machine.
@@ -28,6 +27,7 @@
from mobly import utils
from mobly.controllers import sniffer
+
class SnifferLocalBase(sniffer.Sniffer):
"""This class defines the common behaviors of WLAN sniffers running on
WLAN interfaces of the local machine.
@@ -87,14 +87,15 @@
if sniffer.Sniffer.CONFIG_KEY_CHANNEL in final_configs:
try:
subprocess.check_call([
- 'iwconfig',
- self._interface,
- 'channel',
- str(final_configs[sniffer.Sniffer.CONFIG_KEY_CHANNEL])])
+ 'iwconfig', self._interface, 'channel',
+ str(final_configs[sniffer.Sniffer.CONFIG_KEY_CHANNEL])
+ ])
except Exception as err:
raise sniffer.ExecutionError(err)
- def _get_command_line(self, additional_args=None, duration=None,
+ def _get_command_line(self,
+ additional_args=None,
+ duration=None,
packet_count=None):
"""Utility function to be implemented by every child class - which
are the concrete sniffer classes. Each sniffer-specific class should
@@ -110,25 +111,29 @@
self._process = None
shutil.move(self._temp_capture_file_path, self._capture_file_path)
- def start_capture(self, override_configs=None,
- additional_args=None, duration=None,
+ def start_capture(self,
+ override_configs=None,
+ additional_args=None,
+ duration=None,
packet_count=None):
"""See base class documentation
"""
if self._process is not None:
raise sniffer.InvalidOperationError(
- "Trying to start a sniff while another is still running!")
+ "Trying to start a sniff while another is still running!")
capture_dir = os.path.join(self._logger.log_path,
"Sniffer-{}".format(self._interface))
os.makedirs(capture_dir, exist_ok=True)
- self._capture_file_path = os.path.join(capture_dir,
- "capture_{}.pcap".format(logger.get_log_file_timestamp()))
+ self._capture_file_path = os.path.join(
+ capture_dir,
+ "capture_{}.pcap".format(logger.get_log_file_timestamp()))
self._pre_capture_config(override_configs)
_, self._temp_capture_file_path = tempfile.mkstemp(suffix=".pcap")
cmd = self._get_command_line(additional_args=additional_args,
- duration=duration, packet_count=packet_count)
+ duration=duration,
+ packet_count=packet_count)
self._process = utils.start_standing_subprocess(cmd)
return sniffer.ActiveCaptureContext(self, duration)
@@ -138,8 +143,9 @@
"""
if self._process is None:
raise sniffer.InvalidOperationError(
- "Trying to stop a non-started process")
- utils.stop_standing_subprocess(self._process, kill_signal=signal.SIGINT)
+ "Trying to stop a non-started process")
+ utils.stop_standing_subprocess(self._process,
+ kill_signal=signal.SIGINT)
self._post_process()
def wait_for_capture(self, timeout=None):
@@ -147,7 +153,7 @@
"""
if self._process is None:
raise sniffer.InvalidOperationError(
- "Trying to wait on a non-started process")
+ "Trying to wait on a non-started process")
try:
utils.wait_for_standing_subprocess(self._process, timeout)
self._post_process()
diff --git a/mobly/controllers/sniffer_lib/local/tcpdump.py b/mobly/controllers/sniffer_lib/local/tcpdump.py
index cd2d0c2..b06e0db 100644
--- a/mobly/controllers/sniffer_lib/local/tcpdump.py
+++ b/mobly/controllers/sniffer_lib/local/tcpdump.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,6 +16,7 @@
from mobly.controllers import sniffer
from mobly.controllers.sniffer_lib.local import local_base
+
class Sniffer(local_base.SnifferLocalBase):
"""This class defines a sniffer which uses tcpdump as its back-end
"""
@@ -30,7 +31,7 @@
self._executable_path = shutil.which("tcpdump")
if self._executable_path is None:
raise sniffer.SnifferError(
- "Cannot find a path to the 'tcpdump' executable")
+ "Cannot find a path to the 'tcpdump' executable")
def get_descriptor(self):
"""See base class documentation
@@ -42,7 +43,9 @@
"""
return "tcpdump"
- def _get_command_line(self, additional_args=None, duration=None,
+ def _get_command_line(self,
+ additional_args=None,
+ duration=None,
packet_count=None):
cmd = "{} -i {} -w {}".format(self._executable_path, self._interface,
self._temp_capture_file_path)
diff --git a/mobly/controllers/sniffer_lib/local/tshark.py b/mobly/controllers/sniffer_lib/local/tshark.py
index 783a323..18fe67a 100644
--- a/mobly/controllers/sniffer_lib/local/tshark.py
+++ b/mobly/controllers/sniffer_lib/local/tshark.py
@@ -1,11 +1,11 @@
# Copyright 2016 Google Inc.
-#
+#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,6 +16,7 @@
from mobly.controllers import sniffer
from mobly.controllers.sniffer_lib.local import local_base
+
class Sniffer(local_base.SnifferLocalBase):
"""This class defines a sniffer which uses tshark as its back-end
"""
@@ -30,8 +31,9 @@
self._executable_path = (shutil.which("tshark")
or shutil.which("/usr/local/bin/tshark"))
if self._executable_path is None:
- raise sniffer.SnifferError("Cannot find a path to the 'tshark' "
- "executable (or to '/usr/local/bin/tshark')")
+ raise sniffer.SnifferError(
+ "Cannot find a path to the 'tshark' "
+ "executable (or to '/usr/local/bin/tshark')")
def get_descriptor(self):
"""See base class documentation
@@ -43,7 +45,9 @@
"""
return "tshark"
- def _get_command_line(self, additional_args=None, duration=None,
+ def _get_command_line(self,
+ additional_args=None,
+ duration=None,
packet_count=None):
cmd = "{} -i {} -w {}".format(self._executable_path, self._interface,
self._temp_capture_file_path)
diff --git a/mobly/records.py b/mobly/records.py
index 4048554..067dcac 100644
--- a/mobly/records.py
+++ b/mobly/records.py
@@ -157,12 +157,11 @@
with io.open(self._path, 'a', encoding='utf-8') as f:
# Use safe_dump here to avoid language-specific tags in final
# output.
- yaml.safe_dump(
- new_content,
- f,
- explicit_start=True,
- allow_unicode=True,
- indent=4)
+ yaml.safe_dump(new_content,
+ f,
+ explicit_start=True,
+ allow_unicode=True,
+ indent=4)
class TestResultEnums(object):
diff --git a/mobly/suite_runner.py b/mobly/suite_runner.py
index 0ca7729..d3ccce5 100644
--- a/mobly/suite_runner.py
+++ b/mobly/suite_runner.py
@@ -55,14 +55,13 @@
"""
# Parse cli args.
parser = argparse.ArgumentParser(description='Mobly Suite Executable.')
- parser.add_argument(
- '-c',
- '--config',
- nargs=1,
- type=str,
- required=True,
- metavar='<PATH>',
- help='Path to the test configuration file.')
+ parser.add_argument('-c',
+ '--config',
+ nargs=1,
+ type=str,
+ required=True,
+ metavar='<PATH>',
+ help='Path to the test configuration file.')
parser.add_argument(
'--tests',
'--test_case',
@@ -79,8 +78,9 @@
# Check the classes that were passed in
for test_class in test_classes:
if not issubclass(test_class, base_test.BaseTestClass):
- logging.error('Test class %s does not extend '
- 'mobly.base_test.BaseTestClass', test_class)
+ logging.error(
+ 'Test class %s does not extend '
+ 'mobly.base_test.BaseTestClass', test_class)
sys.exit(1)
# Find the full list of tests to execute
diff --git a/mobly/test_runner.py b/mobly/test_runner.py
index c459d32..7c0b0cc 100644
--- a/mobly/test_runner.py
+++ b/mobly/test_runner.py
@@ -71,8 +71,8 @@
# Execute the test class with configs.
ok = True
for config in test_configs:
- runner = TestRunner(
- log_dir=config.log_path, test_bed_name=config.test_bed_name)
+ runner = TestRunner(log_dir=config.log_path,
+ test_bed_name=config.test_bed_name)
runner.add_test_class(config, test_class, tests)
try:
runner.run()
@@ -105,33 +105,30 @@
"""
parser = argparse.ArgumentParser(description='Mobly Test Executable.')
group = parser.add_mutually_exclusive_group(required=True)
- group.add_argument(
- '-c',
- '--config',
- nargs=1,
- type=str,
- metavar='<PATH>',
- help='Path to the test configuration file.')
+ group.add_argument('-c',
+ '--config',
+ nargs=1,
+ type=str,
+ metavar='<PATH>',
+ help='Path to the test configuration file.')
group.add_argument(
'-l',
'--list_tests',
action='store_true',
help='Print the names of the tests defined in a script without '
'executing them.')
- parser.add_argument(
- '--tests',
- '--test_case',
- nargs='+',
- type=str,
- metavar='[test_a test_b...]',
- help='A list of tests in the test class to execute.')
- parser.add_argument(
- '-tb',
- '--test_bed',
- nargs='+',
- type=str,
- metavar='[<TEST BED NAME1> <TEST BED NAME2> ...]',
- help='Specify which test beds to run tests on.')
+ parser.add_argument('--tests',
+ '--test_case',
+ nargs='+',
+ type=str,
+ metavar='[test_a test_b...]',
+ help='A list of tests in the test class to execute.')
+ parser.add_argument('-tb',
+ '--test_bed',
+ nargs='+',
+ type=str,
+ metavar='[<TEST BED NAME1> <TEST BED NAME2> ...]',
+ help='Specify which test beds to run tests on.')
if not argv:
argv = sys.argv[1:]
return parser.parse_known_args(argv)[0]
@@ -282,19 +279,18 @@
if self._log_dir != config.log_path:
raise Error(
'TestRunner\'s log folder is "%s", but a test config with a '
- 'different log folder ("%s") was added.' % (self._log_dir,
- config.log_path))
+ 'different log folder ("%s") was added.' %
+ (self._log_dir, config.log_path))
if self._test_bed_name != config.test_bed_name:
raise Error(
'TestRunner\'s test bed is "%s", but a test config with a '
'different test bed ("%s") was added.' %
(self._test_bed_name, config.test_bed_name))
self._test_run_infos.append(
- TestRunner._TestRunInfo(
- config=config,
- test_class=test_class,
- tests=tests,
- test_class_name_suffix=name_suffix))
+ TestRunner._TestRunInfo(config=config,
+ test_class=test_class,
+ tests=tests,
+ test_class_name_suffix=name_suffix))
def _run_test_class(self, config, test_class, tests=None):
"""Instantiates and executes a test class.
@@ -342,10 +338,9 @@
test_config.summary_writer = summary_writer
test_config.test_class_name_suffix = test_run_info.test_class_name_suffix
try:
- self._run_test_class(
- config=test_config,
- test_class=test_run_info.test_class,
- tests=test_run_info.tests)
+ self._run_test_class(config=test_config,
+ test_class=test_run_info.test_class,
+ tests=test_run_info.tests)
except signals.TestAbortAll as e:
logging.warning(
'Abort all subsequent test classes. Reason: %s', e)
diff --git a/mobly/utils.py b/mobly/utils.py
index f1b013c..17bcc88 100644
--- a/mobly/utils.py
+++ b/mobly/utils.py
@@ -336,8 +336,12 @@
stdout = subprocess.PIPE
if stderr is None:
stderr = subprocess.PIPE
- process = psutil.Popen(
- cmd, stdout=stdout, stderr=stderr, shell=shell, cwd=cwd, env=env)
+ process = psutil.Popen(cmd,
+ stdout=stdout,
+ stderr=stderr,
+ shell=shell,
+ cwd=cwd,
+ env=env)
timer = None
timer_triggered = threading.Event()
if timeout and timeout > 0:
@@ -381,13 +385,12 @@
The subprocess that was started.
"""
logging.debug('Starting standing subprocess with: %s', cmd)
- proc = subprocess.Popen(
- cmd,
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- shell=shell,
- env=env)
+ proc = subprocess.Popen(cmd,
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ shell=shell,
+ env=env)
# Leaving stdin open causes problems for input, e.g. breaking the
# code.inspect() shell (http://stackoverflow.com/a/25512460/1612937), so
# explicitly close it assuming it is not needed for standing subprocesses.
diff --git a/tests/mobly/controllers/android_device_test.py b/tests/mobly/controllers/android_device_test.py
index 51c1977..696be22 100755
--- a/tests/mobly/controllers/android_device_test.py
+++ b/tests/mobly/controllers/android_device_test.py
@@ -60,18 +60,15 @@
# Tests for android_device module functions.
# These tests use mock AndroidDevice instances.
- @mock.patch.object(
- android_device,
- 'get_all_instances',
- new=mock_android_device.get_all_instances)
- @mock.patch.object(
- android_device,
- 'list_adb_devices',
- new=mock_android_device.list_adb_devices)
- @mock.patch.object(
- android_device,
- 'list_adb_devices_by_usb_id',
- new=mock_android_device.list_adb_devices)
+ @mock.patch.object(android_device,
+ 'get_all_instances',
+ new=mock_android_device.get_all_instances)
+ @mock.patch.object(android_device,
+ 'list_adb_devices',
+ new=mock_android_device.list_adb_devices)
+ @mock.patch.object(android_device,
+ 'list_adb_devices_by_usb_id',
+ new=mock_android_device.list_adb_devices)
def test_create_with_pickup_all(self):
pick_all_token = android_device.ANDROID_DEVICE_PICK_ALL_TOKEN
actual_ads = android_device.create(pick_all_token)
@@ -79,50 +76,45 @@
mock_android_device.get_mock_ads(5)):
self.assertEqual(actual.serial, expected.serial)
- @mock.patch.object(
- android_device, 'get_instances', new=mock_android_device.get_instances)
- @mock.patch.object(
- android_device,
- 'list_adb_devices',
- new=mock_android_device.list_adb_devices)
- @mock.patch.object(
- android_device,
- 'list_adb_devices_by_usb_id',
- new=mock_android_device.list_adb_devices)
+ @mock.patch.object(android_device,
+ 'get_instances',
+ new=mock_android_device.get_instances)
+ @mock.patch.object(android_device,
+ 'list_adb_devices',
+ new=mock_android_device.list_adb_devices)
+ @mock.patch.object(android_device,
+ 'list_adb_devices_by_usb_id',
+ new=mock_android_device.list_adb_devices)
def test_create_with_string_list(self):
string_list = [u'1', '2']
actual_ads = android_device.create(string_list)
for actual_ad, expected_serial in zip(actual_ads, ['1', '2']):
self.assertEqual(actual_ad.serial, expected_serial)
- @mock.patch.object(
- android_device,
- 'get_instances_with_configs',
- new=mock_android_device.get_instances_with_configs)
- @mock.patch.object(
- android_device,
- 'list_adb_devices',
- new=mock_android_device.list_adb_devices)
- @mock.patch.object(
- android_device,
- 'list_adb_devices_by_usb_id',
- new=mock_android_device.list_adb_devices)
+ @mock.patch.object(android_device,
+ 'get_instances_with_configs',
+ new=mock_android_device.get_instances_with_configs)
+ @mock.patch.object(android_device,
+ 'list_adb_devices',
+ new=mock_android_device.list_adb_devices)
+ @mock.patch.object(android_device,
+ 'list_adb_devices_by_usb_id',
+ new=mock_android_device.list_adb_devices)
def test_create_with_dict_list(self):
string_list = [{'serial': '1'}, {'serial': '2'}]
actual_ads = android_device.create(string_list)
for actual_ad, expected_serial in zip(actual_ads, ['1', '2']):
self.assertEqual(actual_ad.serial, expected_serial)
- @mock.patch.object(
- android_device,
- 'get_instances_with_configs',
- new=mock_android_device.get_instances_with_configs)
- @mock.patch.object(
- android_device,
- 'list_adb_devices',
- new=mock_android_device.list_adb_devices)
- @mock.patch.object(
- android_device, 'list_adb_devices_by_usb_id', return_value=['usb:1'])
+ @mock.patch.object(android_device,
+ 'get_instances_with_configs',
+ new=mock_android_device.get_instances_with_configs)
+ @mock.patch.object(android_device,
+ 'list_adb_devices',
+ new=mock_android_device.list_adb_devices)
+ @mock.patch.object(android_device,
+ 'list_adb_devices_by_usb_id',
+ return_value=['usb:1'])
def test_create_with_usb_id(self, mock_list_adb_devices_by_usb_id):
string_list = [{'serial': '1'}, {'serial': '2'}, {'serial': 'usb:1'}]
actual_ads = android_device.create(string_list)
@@ -173,8 +165,9 @@
expected_serial = '1'
expected_h_port = 5555
ads[1].h_port = expected_h_port
- ad = android_device.get_device(
- ads, serial=expected_serial, h_port=expected_h_port)
+ ad = android_device.get_device(ads,
+ serial=expected_serial,
+ h_port=expected_h_port)
self.assertEqual(ad.serial, expected_serial)
self.assertEqual(ad.h_port, expected_h_port)
@@ -240,12 +233,10 @@
# These tests mock out any interaction with the OS and real android device
# in AndroidDeivce.
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
def test_AndroidDevice_instantiation(self, MockFastboot, MockAdbProxy):
"""Verifies the AndroidDevice object's basic attributes are correctly
set after instantiation.
@@ -258,12 +249,10 @@
'AndroidDevice%s' % mock_serial)
self.assertEqual(ad.log_path, expected_lp)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
def test_AndroidDevice_build_info(self, MockFastboot, MockAdbProxy):
"""Verifies the AndroidDevice object's basic attributes are correctly
set after instantiation.
@@ -277,20 +266,18 @@
self.assertEqual(build_info['build_product'], 'FakeModel')
self.assertEqual(build_info['product_name'], 'FakeModel')
self.assertEqual(build_info['debuggable'], '1')
- self.assertEqual(
- len(build_info), len(android_device.CACHED_SYSTEM_PROPS))
+ self.assertEqual(len(build_info),
+ len(android_device.CACHED_SYSTEM_PROPS))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy(
- '1',
- mock_properties={
- 'ro.build.id': 'AB42',
- 'ro.build.type': 'userdebug',
- }))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy(
+ '1',
+ mock_properties={
+ 'ro.build.id': 'AB42',
+ 'ro.build.type': 'userdebug',
+ }))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
def test_AndroidDevice_build_info_with_minimal_properties(
self, MockFastboot, MockAdbProxy):
ad = android_device.AndroidDevice(serial='1')
@@ -303,12 +290,10 @@
self.assertEqual(build_info['product_name'], '')
self.assertEqual(build_info['debuggable'], '')
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
def test_AndroidDevice_build_info_cached(self, MockFastboot, MockAdbProxy):
"""Verifies the AndroidDevice object's basic attributes are correctly
set after instantiation.
@@ -319,46 +304,40 @@
_ = ad.build_info
self.assertEqual(ad.adb.getprops_call_count, 1)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy(
- '1',
- mock_properties={
- 'ro.build.id': 'AB42',
- 'ro.build.type': 'userdebug',
- 'ro.debuggable': '1',
- }))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy(
+ '1',
+ mock_properties={
+ 'ro.build.id': 'AB42',
+ 'ro.build.type': 'userdebug',
+ 'ro.debuggable': '1',
+ }))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
def test_AndroidDevice_is_rootable_when_userdebug_device(
self, MockFastboot, MockAdbProxy):
ad = android_device.AndroidDevice(serial='1')
self.assertTrue(ad.is_rootable)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy(
- '1',
- mock_properties={
- 'ro.build.id': 'AB42',
- 'ro.build.type': 'user',
- 'ro.debuggable': '0',
- }))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy(
+ '1',
+ mock_properties={
+ 'ro.build.id': 'AB42',
+ 'ro.build.type': 'user',
+ 'ro.debuggable': '0',
+ }))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
def test_AndroidDevice_is_rootable_when_user_device(
self, MockFastboot, MockAdbProxy):
ad = android_device.AndroidDevice(serial='1')
self.assertFalse(ad.is_rootable)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
def test_AndroidDevice_device_info(self, MockFastboot, MockAdbProxy):
ad = android_device.AndroidDevice(serial=1)
device_info = ad.device_info
@@ -372,12 +351,10 @@
self.assertEqual(device_info['user_added_info']['sim_type'], 'Fi')
self.assertEqual(device_info['user_added_info']['build_id'], 'CD42')
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
def test_AndroidDevice_serial_is_valid(self, MockFastboot, MockAdbProxy):
"""Verifies that the serial is a primitive string type and serializable.
"""
@@ -391,12 +368,10 @@
self.assertTrue(isinstance(ad.serial, str))
yaml.safe_dump(ad.serial)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy(1))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy(1))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy(1))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy(1))
@mock.patch('mobly.utils.create_dir')
def test_AndroidDevice_take_bug_report(self, create_dir_mock,
FastbootProxy, MockAdbProxy):
@@ -405,21 +380,21 @@
"""
mock_serial = '1'
ad = android_device.AndroidDevice(serial=mock_serial)
- output_path = ad.take_bug_report(
- test_name='test_something', begin_time='sometime')
- expected_path = os.path.join(
- logging.log_path, 'AndroidDevice%s' % ad.serial, 'BugReports')
+ output_path = ad.take_bug_report(test_name='test_something',
+ begin_time='sometime')
+ expected_path = os.path.join(logging.log_path,
+ 'AndroidDevice%s' % ad.serial,
+ 'BugReports')
create_dir_mock.assert_called_with(expected_path)
- self.assertEqual(output_path,
- os.path.join(expected_path,
- 'test_something,sometime,1.zip'))
+ self.assertEqual(
+ output_path,
+ os.path.join(expected_path, 'test_something,sometime,1.zip'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1', fail_br=True))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1',
+ fail_br=True))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
def test_AndroidDevice_take_bug_report_fail(self, create_dir_mock,
FastbootProxy, MockAdbProxy):
@@ -430,15 +405,13 @@
ad = android_device.AndroidDevice(serial=mock_serial)
expected_msg = '.* Failed to take bugreport.'
with self.assertRaisesRegex(android_device.Error, expected_msg):
- ad.take_bug_report(
- test_name='test_something', begin_time='sometime')
+ ad.take_bug_report(test_name='test_something',
+ begin_time='sometime')
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
@mock.patch('mobly.utils.get_current_epoch_time')
@mock.patch('mobly.logger.epoch_to_log_line_timestamp')
@@ -451,20 +424,19 @@
mock_serial = '1'
ad = android_device.AndroidDevice(serial=mock_serial)
output_path = ad.take_bug_report()
- expected_path = os.path.join(
- logging.log_path, 'AndroidDevice%s' % ad.serial, 'BugReports')
+ expected_path = os.path.join(logging.log_path,
+ 'AndroidDevice%s' % ad.serial,
+ 'BugReports')
create_dir_mock.assert_called_with(expected_path)
epoch_to_log_line_timestamp_mock.assert_called_once_with(1557446629606)
- self.assertEqual(output_path,
- os.path.join(expected_path,
- 'bugreport,05-09_17-03-49.606,1.zip'))
+ self.assertEqual(
+ output_path,
+ os.path.join(expected_path, 'bugreport,05-09_17-03-49.606,1.zip'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
@mock.patch('mobly.utils.get_current_epoch_time')
@mock.patch('mobly.logger.epoch_to_log_line_timestamp')
@@ -477,8 +449,9 @@
mock_serial = '1'
ad = android_device.AndroidDevice(serial=mock_serial)
output_path = ad.take_bug_report(test_name='test_something')
- expected_path = os.path.join(
- logging.log_path, 'AndroidDevice%s' % ad.serial, 'BugReports')
+ expected_path = os.path.join(logging.log_path,
+ 'AndroidDevice%s' % ad.serial,
+ 'BugReports')
create_dir_mock.assert_called_with(expected_path)
epoch_to_log_line_timestamp_mock.assert_called_once_with(1557446629606)
self.assertEqual(
@@ -486,98 +459,91 @@
os.path.join(expected_path,
'test_something,05-09_17-03-49.606,1.zip'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy(1))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy(1))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy(1))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy(1))
@mock.patch('mobly.utils.create_dir')
def test_AndroidDevice_take_bug_report_with_only_begin_time(
self, create_dir_mock, FastbootProxy, MockAdbProxy):
mock_serial = '1'
ad = android_device.AndroidDevice(serial=mock_serial)
output_path = ad.take_bug_report(begin_time='sometime')
- expected_path = os.path.join(
- logging.log_path, 'AndroidDevice%s' % ad.serial, 'BugReports')
+ expected_path = os.path.join(logging.log_path,
+ 'AndroidDevice%s' % ad.serial,
+ 'BugReports')
create_dir_mock.assert_called_with(expected_path)
- self.assertEqual(output_path,
- os.path.join(expected_path,
+ self.assertEqual(
+ output_path, os.path.join(expected_path,
'bugreport,sometime,1.zip'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy(1))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy(1))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy(1))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy(1))
@mock.patch('mobly.utils.create_dir')
def test_AndroidDevice_take_bug_report_with_positional_args(
self, create_dir_mock, FastbootProxy, MockAdbProxy):
mock_serial = '1'
ad = android_device.AndroidDevice(serial=mock_serial)
output_path = ad.take_bug_report('test_something', 'sometime')
- expected_path = os.path.join(
- logging.log_path, 'AndroidDevice%s' % ad.serial, 'BugReports')
+ expected_path = os.path.join(logging.log_path,
+ 'AndroidDevice%s' % ad.serial,
+ 'BugReports')
create_dir_mock.assert_called_with(expected_path)
- self.assertEqual(output_path,
- os.path.join(expected_path,
- 'test_something,sometime,1.zip'))
+ self.assertEqual(
+ output_path,
+ os.path.join(expected_path, 'test_something,sometime,1.zip'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
def test_AndroidDevice_take_bug_report_with_destination(
self, create_dir_mock, FastbootProxy, MockAdbProxy):
mock_serial = '1'
ad = android_device.AndroidDevice(serial=mock_serial)
dest = tempfile.gettempdir()
- output_path = ad.take_bug_report(
- test_name="test_something",
- begin_time="sometime",
- destination=dest)
+ output_path = ad.take_bug_report(test_name="test_something",
+ begin_time="sometime",
+ destination=dest)
expected_path = os.path.join(dest)
create_dir_mock.assert_called_with(expected_path)
- self.assertEqual(output_path,
- os.path.join(expected_path,
- 'test_something,sometime,1.zip'))
+ self.assertEqual(
+ output_path,
+ os.path.join(expected_path, 'test_something,sometime,1.zip'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy(
- '1', fail_br_before_N=True))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy(
+ '1', fail_br_before_N=True))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
- def test_AndroidDevice_take_bug_report_fallback(
- self, create_dir_mock, FastbootProxy, MockAdbProxy):
+ def test_AndroidDevice_take_bug_report_fallback(self, create_dir_mock,
+ FastbootProxy,
+ MockAdbProxy):
"""Verifies AndroidDevice.take_bug_report falls back to traditional
bugreport on builds that do not have bugreportz.
"""
mock_serial = '1'
ad = android_device.AndroidDevice(serial=mock_serial)
- output_path = ad.take_bug_report(
- test_name='test_something', begin_time='sometime')
- expected_path = os.path.join(
- logging.log_path, 'AndroidDevice%s' % ad.serial, 'BugReports')
+ output_path = ad.take_bug_report(test_name='test_something',
+ begin_time='sometime')
+ expected_path = os.path.join(logging.log_path,
+ 'AndroidDevice%s' % ad.serial,
+ 'BugReports')
create_dir_mock.assert_called_with(expected_path)
- self.assertEqual(output_path,
- os.path.join(expected_path,
- 'test_something,sometime,1.txt'))
+ self.assertEqual(
+ output_path,
+ os.path.join(expected_path, 'test_something,sometime,1.txt'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_change_log_path(self, stop_proc_mock,
start_proc_mock, FastbootProxy,
@@ -589,14 +555,12 @@
self.assertTrue(os.path.exists(new_log_path))
self.assertFalse(os.path.exists(old_path))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_change_log_path_no_log_exists(
self, stop_proc_mock, start_proc_mock, FastbootProxy,
@@ -608,14 +572,14 @@
self.assertTrue(os.path.exists(new_log_path))
self.assertFalse(os.path.exists(old_path))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('127.0.0.1:5557'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('127.0.0.1:5557')
+ )
@mock.patch(
'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
return_value=mock_android_device.MockFastbootProxy('127.0.0.1:5557'))
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_with_reserved_character_in_serial_log_path(
self, stop_proc_mock, start_proc_mock, FastbootProxy,
@@ -624,15 +588,13 @@
base_log_path = os.path.basename(ad.log_path)
self.assertEqual(base_log_path, 'AndroidDevice127.0.0.1-5557')
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_change_log_path_with_service(
self, stop_proc_mock, start_proc_mock, creat_dir_mock,
@@ -644,15 +606,13 @@
with self.assertRaisesRegex(android_device.Error, expected_msg):
ad.log_path = new_log_path
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_change_log_path_with_existing_file(
self, stop_proc_mock, start_proc_mock, creat_dir_mock,
@@ -666,15 +626,13 @@
with self.assertRaisesRegex(android_device.Error, expected_msg):
ad.log_path = new_log_path
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_update_serial(self, stop_proc_mock, start_proc_mock,
creat_dir_mock, FastbootProxy,
@@ -686,15 +644,13 @@
self.assertEqual(ad.adb.serial, ad.serial)
self.assertEqual(ad.fastboot.serial, ad.serial)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_update_serial_with_service_running(
self, stop_proc_mock, start_proc_mock, creat_dir_mock,
@@ -705,12 +661,10 @@
with self.assertRaisesRegex(android_device.Error, expected_msg):
ad.update_serial('2')
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient')
@mock.patch('mobly.utils.get_available_host_port')
@@ -720,12 +674,10 @@
ad.load_snippet('snippet', MOCK_SNIPPET_PACKAGE_NAME)
self.assertTrue(hasattr(ad, 'snippet'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient')
@mock.patch('mobly.utils.get_available_host_port')
@@ -737,18 +689,18 @@
actual_value = getattr(ad, 'some_attr', value)
self.assertEqual(actual_value, value)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient',
return_value=MockSnippetClient)
@mock.patch('mobly.utils.get_available_host_port')
- def test_AndroidDevice_load_snippet_dup_package(
- self, MockGetPort, MockSnippetClient, MockFastboot, MockAdbProxy):
+ def test_AndroidDevice_load_snippet_dup_package(self, MockGetPort,
+ MockSnippetClient,
+ MockFastboot,
+ MockAdbProxy):
ad = android_device.AndroidDevice(serial='1')
ad.load_snippet('snippet', MOCK_SNIPPET_PACKAGE_NAME)
expected_msg = ('Snippet package "%s" has already been loaded under '
@@ -756,12 +708,10 @@
with self.assertRaisesRegex(android_device.Error, expected_msg):
ad.load_snippet('snippet2', MOCK_SNIPPET_PACKAGE_NAME)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient',
return_value=MockSnippetClient)
@@ -770,16 +720,15 @@
self, MockGetPort, MockSnippetClient, MockFastboot, MockAdbProxy):
ad = android_device.AndroidDevice(serial='1')
ad.load_snippet('snippet', MOCK_SNIPPET_PACKAGE_NAME)
- expected_msg = '.* Attribute "snippet" already exists, please use a different name.'
+ expected_msg = ('.* Attribute "snippet" already exists, please use a '
+ 'different name.')
with self.assertRaisesRegex(android_device.Error, expected_msg):
ad.load_snippet('snippet', MOCK_SNIPPET_PACKAGE_NAME + 'haha')
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient')
@mock.patch('mobly.utils.get_available_host_port')
@@ -791,12 +740,10 @@
with self.assertRaisesRegex(android_device.Error, expected_msg):
ad.load_snippet('adb', MOCK_SNIPPET_PACKAGE_NAME)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient')
@mock.patch('mobly.utils.get_available_host_port')
@@ -819,12 +766,10 @@
except Exception as e:
assertIs(e, expected_e)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient')
@mock.patch('mobly.utils.get_available_host_port')
@@ -842,29 +787,26 @@
ad.load_snippet('snippet', MOCK_SNIPPET_PACKAGE_NAME)
self.assertTrue(hasattr(ad, 'snippet'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient')
@mock.patch('mobly.utils.get_available_host_port')
- def test_AndroidDevice_snippet_cleanup(
- self, MockGetPort, MockSnippetClient, MockFastboot, MockAdbProxy):
+ def test_AndroidDevice_snippet_cleanup(self, MockGetPort,
+ MockSnippetClient, MockFastboot,
+ MockAdbProxy):
ad = android_device.AndroidDevice(serial='1')
ad.services.start_all()
ad.load_snippet('snippet', MOCK_SNIPPET_PACKAGE_NAME)
ad.unload_snippet('snippet')
self.assertFalse(hasattr(ad, 'snippet'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
def test_AndroidDevice_debug_tag(self, MockFastboot, MockAdbProxy):
mock_serial = '1'
ad = android_device.AndroidDevice(serial=mock_serial)
@@ -885,14 +827,12 @@
except Exception as e:
self.assertEqual("(<AndroidDevice|Mememe>, 'Something')", str(e))
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_handle_usb_disconnect(self, stop_proc_mock,
start_proc_mock,
@@ -931,14 +871,12 @@
self.assertTrue(ad.services.is_any_alive)
self.assertTrue(ad.services.mock_service.resume_called)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_handle_reboot(self, stop_proc_mock, start_proc_mock,
FastbootProxy, MockAdbProxy):
@@ -976,14 +914,12 @@
self.assertTrue(ad.services.is_any_alive)
self.assertFalse(ad.services.mock_service.resume_called)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_handle_reboot_changes_build_info(
self, stop_proc_mock, start_proc_mock, FastbootProxy,
@@ -997,14 +933,12 @@
self.assertFalse(ad.is_rootable)
self.assertEqual(ad.adb.getprops_call_count, 2)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
- @mock.patch(
- 'mobly.utils.start_standing_subprocess', return_value='process')
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.utils.start_standing_subprocess',
+ return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_AndroidDevice_handle_reboot_changes_build_info_with_caching(
self, stop_proc_mock, start_proc_mock, FastbootProxy,
@@ -1021,20 +955,17 @@
self.assertEqual(ad.adb.getprops_call_count, 4)
self.assertEqual(rootable_states, [True, True, False, False, False])
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device.AndroidDevice.is_boot_completed',
side_effect=[
False, False,
- adb.AdbTimeoutError(
- ['adb', 'shell', 'getprop sys.boot_completed'],
- timeout=5,
- serial=1), True
+ adb.AdbTimeoutError(['adb', 'shell', 'getprop sys.boot_completed'],
+ timeout=5,
+ serial=1), True
])
@mock.patch('time.sleep', return_value=None)
@mock.patch('time.time', side_effect=[0, 5, 10, 15, 20, 25, 30])
@@ -1052,20 +983,17 @@
'adb.AdbError or adb.AdbTimeoutError exception raised but not handled.'
)
- @mock.patch(
- 'mobly.controllers.android_device_lib.adb.AdbProxy',
- return_value=mock_android_device.MockAdbProxy('1'))
- @mock.patch(
- 'mobly.controllers.android_device_lib.fastboot.FastbootProxy',
- return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch(
'mobly.controllers.android_device.AndroidDevice.is_boot_completed',
side_effect=[
False, False,
- adb.AdbTimeoutError(
- ['adb', 'shell', 'getprop sys.boot_completed'],
- timeout=5,
- serial=1), False, False, False, False
+ adb.AdbTimeoutError(['adb', 'shell', 'getprop sys.boot_completed'],
+ timeout=5,
+ serial=1), False, False, False, False
])
@mock.patch('time.sleep', return_value=None)
@mock.patch('time.time', side_effect=[0, 5, 10, 15, 20, 25, 30])