aboutsummaryrefslogtreecommitdiff
path: root/tests/mobly/controllers/android_device_lib/snippet_client_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mobly/controllers/android_device_lib/snippet_client_test.py')
-rwxr-xr-xtests/mobly/controllers/android_device_lib/snippet_client_test.py472
1 files changed, 309 insertions, 163 deletions
diff --git a/tests/mobly/controllers/android_device_lib/snippet_client_test.py b/tests/mobly/controllers/android_device_lib/snippet_client_test.py
index 53da1ae..5f31c47 100755
--- a/tests/mobly/controllers/android_device_lib/snippet_client_test.py
+++ b/tests/mobly/controllers/android_device_lib/snippet_client_test.py
@@ -23,13 +23,14 @@ from tests.lib import mock_android_device
MOCK_PACKAGE_NAME = 'some.package.name'
MOCK_MISSING_PACKAGE_NAME = 'not.installed'
-JSONRPC_BASE_CLASS = 'mobly.controllers.android_device_lib.jsonrpc_client_base.JsonRpcClientBase'
+JSONRPC_BASE_CLASS = (
+ 'mobly.controllers.android_device_lib.jsonrpc_client_base.JsonRpcClientBase'
+)
MOCK_USER_ID = 0
class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
- """Unit tests for mobly.controllers.android_device_lib.snippet_client.
- """
+ """Unit tests for mobly.controllers.android_device_lib.snippet_client."""
def test_check_app_installed_normal(self):
sc = self._make_client()
@@ -38,29 +39,40 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
def test_check_app_installed_fail_app_not_installed(self):
sc = self._make_client(mock_android_device.MockAdbProxy())
expected_msg = '.* %s is not installed.' % MOCK_PACKAGE_NAME
- with self.assertRaisesRegex(snippet_client.AppStartPreCheckError,
- expected_msg):
+ with self.assertRaisesRegex(
+ snippet_client.AppStartPreCheckError, expected_msg
+ ):
sc._check_app_installed()
def test_check_app_installed_fail_not_instrumented(self):
sc = self._make_client(
- mock_android_device.MockAdbProxy(
- installed_packages=[MOCK_PACKAGE_NAME]))
- expected_msg = ('.* %s is installed, but it is not instrumented.' %
- MOCK_PACKAGE_NAME)
- with self.assertRaisesRegex(snippet_client.AppStartPreCheckError,
- expected_msg):
+ mock_android_device.MockAdbProxy(installed_packages=[MOCK_PACKAGE_NAME])
+ )
+ expected_msg = (
+ '.* %s is installed, but it is not instrumented.' % MOCK_PACKAGE_NAME
+ )
+ with self.assertRaisesRegex(
+ snippet_client.AppStartPreCheckError, expected_msg
+ ):
sc._check_app_installed()
def test_check_app_installed_fail_target_not_installed(self):
sc = self._make_client(
- mock_android_device.MockAdbProxy(instrumented_packages=[(
- MOCK_PACKAGE_NAME, snippet_client._INSTRUMENTATION_RUNNER_PACKAGE,
- MOCK_MISSING_PACKAGE_NAME)]))
- expected_msg = ('.* Instrumentation target %s is not installed.' %
- MOCK_MISSING_PACKAGE_NAME)
- with self.assertRaisesRegex(snippet_client.AppStartPreCheckError,
- expected_msg):
+ mock_android_device.MockAdbProxy(
+ instrumented_packages=[(
+ MOCK_PACKAGE_NAME,
+ snippet_client._INSTRUMENTATION_RUNNER_PACKAGE,
+ MOCK_MISSING_PACKAGE_NAME,
+ )]
+ )
+ )
+ expected_msg = (
+ '.* Instrumentation target %s is not installed.'
+ % MOCK_MISSING_PACKAGE_NAME
+ )
+ with self.assertRaisesRegex(
+ snippet_client.AppStartPreCheckError, expected_msg
+ ):
sc._check_app_installed()
@mock.patch('socket.create_connection')
@@ -91,10 +103,13 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
callback.getAll('eventName')
@mock.patch('socket.create_connection')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
- def test_snippet_restore_event_client(self, mock_get_port,
- mock_create_connection):
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
+ def test_snippet_restore_event_client(
+ self, mock_get_port, mock_create_connection
+ ):
mock_get_port.return_value = 789
fake_file = self.setup_mock_socket_file(mock_create_connection)
client = self._make_client()
@@ -130,24 +145,37 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
mock_create_connection.side_effect = IOError('socket timed out')
with self.assertRaisesRegex(
jsonrpc_client_base.AppRestoreConnectionError,
- ('Failed to restore app connection for %s at host port %s, '
- 'device port %s') % (MOCK_PACKAGE_NAME, 789, 456)):
+ (
+ 'Failed to restore app connection for %s at host port %s, '
+ 'device port %s'
+ )
+ % (MOCK_PACKAGE_NAME, 789, 456),
+ ):
client.restore_app_connection()
@mock.patch('socket.create_connection')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.start_standing_subprocess')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
- def test_snippet_start_app_and_connect(self, mock_get_port,
- mock_start_standing_subprocess,
- mock_create_connection):
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.start_standing_subprocess'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
+ def test_snippet_start_app_and_connect(
+ self,
+ mock_get_port,
+ mock_start_standing_subprocess,
+ mock_create_connection,
+ ):
self.setup_mock_socket_file(mock_create_connection)
- self._setup_mock_instrumentation_cmd(mock_start_standing_subprocess,
- resp_lines=[
- b'SNIPPET START, PROTOCOL 1 0\n',
- b'SNIPPET SERVING, PORT 123\n',
- ])
+ self._setup_mock_instrumentation_cmd(
+ mock_start_standing_subprocess,
+ resp_lines=[
+ b'SNIPPET START, PROTOCOL 1 0\n',
+ b'SNIPPET SERVING, PORT 123\n',
+ ],
+ )
client = self._make_client()
client.start_app_and_connect()
self.assertEqual(123, client.device_port)
@@ -155,8 +183,9 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
@mock.patch('socket.create_connection')
@mock.patch('mobly.utils.stop_standing_subprocess')
- def test_snippet_stop_app(self, mock_stop_standing_subprocess,
- mock_create_connection):
+ def test_snippet_stop_app(
+ self, mock_stop_standing_subprocess, mock_create_connection
+ ):
adb_proxy = mock.MagicMock()
adb_proxy.shell.return_value = b'OK (0 tests)'
client = self._make_client(adb_proxy)
@@ -179,14 +208,15 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
@mock.patch('socket.create_connection')
@mock.patch('mobly.utils.stop_standing_subprocess')
- def test_snippet_stop_app_stops_event_client(self,
- mock_stop_standing_subprocess,
- mock_create_connection):
+ def test_snippet_stop_app_stops_event_client(
+ self, mock_stop_standing_subprocess, mock_create_connection
+ ):
adb_proxy = mock.MagicMock()
adb_proxy.shell.return_value = b'OK (0 tests)'
client = self._make_client(adb_proxy)
event_client = snippet_client.SnippetClient(
- package=MOCK_PACKAGE_NAME, ad=client._ad)
+ package=MOCK_PACKAGE_NAME, ad=client._ad
+ )
client._event_client = event_client
event_client_conn = mock.Mock()
event_client._conn = event_client_conn
@@ -200,12 +230,14 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
@mock.patch('socket.create_connection')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_snippet_stop_app_stops_event_client_without_connection(
- self, mock_stop_standing_subprocess, mock_create_connection):
+ self, mock_stop_standing_subprocess, mock_create_connection
+ ):
adb_proxy = mock.MagicMock()
adb_proxy.shell.return_value = b'OK (0 tests)'
client = self._make_client(adb_proxy)
event_client = snippet_client.SnippetClient(
- package=MOCK_PACKAGE_NAME, ad=client._ad)
+ package=MOCK_PACKAGE_NAME, ad=client._ad
+ )
client._event_client = event_client
event_client._conn = None
@@ -217,7 +249,8 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
@mock.patch('socket.create_connection')
@mock.patch('mobly.utils.stop_standing_subprocess')
def test_snippet_stop_app_without_event_client(
- self, mock_stop_standing_subprocess, mock_create_connection):
+ self, mock_stop_standing_subprocess, mock_create_connection
+ ):
adb_proxy = mock.MagicMock()
adb_proxy.shell.return_value = b'OK (0 tests)'
client = self._make_client(adb_proxy)
@@ -231,8 +264,8 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
@mock.patch('mobly.utils.stop_standing_subprocess')
@mock.patch.object(snippet_client.SnippetClient, 'connect')
def test_event_client_does_not_stop_port_forwarding(
- self, mock_stop_standing_subprocess, mock_create_connection,
- mock_connect):
+ self, mock_stop_standing_subprocess, mock_create_connection, mock_connect
+ ):
adb_proxy = mock.MagicMock()
adb_proxy.shell.return_value = b'OK (0 tests)'
client = self._make_client(adb_proxy)
@@ -253,55 +286,78 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
event_client._adb.forward.assert_not_called()
@mock.patch('socket.create_connection')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.start_standing_subprocess')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.start_standing_subprocess'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient.'
- 'disable_hidden_api_blacklist')
+ 'disable_hidden_api_blacklist'
+ )
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient.'
- 'stop_app')
- def test_start_app_and_connect_precheck_fail(self, mock_stop, mock_precheck,
- mock_get_port,
- mock_start_standing_subprocess,
- mock_create_connection):
+ 'stop_app'
+ )
+ def test_start_app_and_connect_precheck_fail(
+ self,
+ mock_stop,
+ mock_precheck,
+ mock_get_port,
+ mock_start_standing_subprocess,
+ mock_create_connection,
+ ):
self.setup_mock_socket_file(mock_create_connection)
- self._setup_mock_instrumentation_cmd(mock_start_standing_subprocess,
- resp_lines=[
- b'SNIPPET START, PROTOCOL 1 0\n',
- b'SNIPPET SERVING, PORT 123\n',
- ])
+ self._setup_mock_instrumentation_cmd(
+ mock_start_standing_subprocess,
+ resp_lines=[
+ b'SNIPPET START, PROTOCOL 1 0\n',
+ b'SNIPPET SERVING, PORT 123\n',
+ ],
+ )
client = self._make_client()
mock_precheck.side_effect = snippet_client.AppStartPreCheckError(
- client.ad, 'ha')
+ client.ad, 'ha'
+ )
with self.assertRaisesRegex(snippet_client.AppStartPreCheckError, 'ha'):
client.start_app_and_connect()
mock_stop.assert_not_called()
self.assertFalse(client.is_alive)
@mock.patch('socket.create_connection')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.start_standing_subprocess')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.start_standing_subprocess'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient._start_app_and_connect'
)
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient.stop_app'
)
- def test_start_app_and_connect_generic_error(self, mock_stop, mock_start,
- mock_get_port,
- mock_start_standing_subprocess,
- mock_create_connection):
+ def test_start_app_and_connect_generic_error(
+ self,
+ mock_stop,
+ mock_start,
+ mock_get_port,
+ mock_start_standing_subprocess,
+ mock_create_connection,
+ ):
self.setup_mock_socket_file(mock_create_connection)
- self._setup_mock_instrumentation_cmd(mock_start_standing_subprocess,
- resp_lines=[
- b'SNIPPET START, PROTOCOL 1 0\n',
- b'SNIPPET SERVING, PORT 123\n',
- ])
+ self._setup_mock_instrumentation_cmd(
+ mock_start_standing_subprocess,
+ resp_lines=[
+ b'SNIPPET START, PROTOCOL 1 0\n',
+ b'SNIPPET SERVING, PORT 123\n',
+ ],
+ )
client = self._make_client()
mock_start.side_effect = Exception('ha')
with self.assertRaisesRegex(Exception, 'ha'):
@@ -310,10 +366,14 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
self.assertFalse(client.is_alive)
@mock.patch('socket.create_connection')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.start_standing_subprocess')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.start_standing_subprocess'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
@mock.patch(
'mobly.controllers.android_device_lib.snippet_client.SnippetClient._start_app_and_connect'
)
@@ -321,14 +381,21 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
'mobly.controllers.android_device_lib.snippet_client.SnippetClient.stop_app'
)
def test_start_app_and_connect_fail_stop_also_fail(
- self, mock_stop, mock_start, mock_get_port,
- mock_start_standing_subprocess, mock_create_connection):
+ self,
+ mock_stop,
+ mock_start,
+ mock_get_port,
+ mock_start_standing_subprocess,
+ mock_create_connection,
+ ):
self.setup_mock_socket_file(mock_create_connection)
- self._setup_mock_instrumentation_cmd(mock_start_standing_subprocess,
- resp_lines=[
- b'SNIPPET START, PROTOCOL 1 0\n',
- b'SNIPPET SERVING, PORT 123\n',
- ])
+ self._setup_mock_instrumentation_cmd(
+ mock_start_standing_subprocess,
+ resp_lines=[
+ b'SNIPPET START, PROTOCOL 1 0\n',
+ b'SNIPPET SERVING, PORT 123\n',
+ ],
+ )
client = self._make_client()
mock_start.side_effect = Exception('Some error')
mock_stop.side_effect = Exception('Another error')
@@ -337,19 +404,34 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
mock_stop.assert_called_once_with()
self.assertFalse(client.is_alive)
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'SnippetClient._do_start_app')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'SnippetClient._check_app_installed')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'SnippetClient._read_protocol_line')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'SnippetClient.connect')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
- def test_snippet_start_on_sdk_21(self, mock_get_port, mock_connect,
- mock_read_protocol_line,
- mock_check_app_installed, mock_do_start_app):
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'SnippetClient._do_start_app'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'SnippetClient._check_app_installed'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'SnippetClient._read_protocol_line'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'SnippetClient.connect'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
+ def test_snippet_start_on_sdk_21(
+ self,
+ mock_get_port,
+ mock_connect,
+ mock_read_protocol_line,
+ mock_check_app_installed,
+ mock_do_start_app,
+ ):
"""Check that `--user` is not added to start command on SDK < 24."""
def _mocked_shell(arg):
@@ -374,24 +456,40 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
client._adb.shell = mock.Mock(return_value=b'setsid')
client.start_app_and_connect()
cmd_setsid = '%s am instrument -w -e action start %s/%s' % (
- snippet_client._SETSID_COMMAND, MOCK_PACKAGE_NAME,
- snippet_client._INSTRUMENTATION_RUNNER_PACKAGE)
+ snippet_client._SETSID_COMMAND,
+ MOCK_PACKAGE_NAME,
+ snippet_client._INSTRUMENTATION_RUNNER_PACKAGE,
+ )
mock_do_start_app.assert_has_calls([mock.call(cmd_setsid)])
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'SnippetClient._do_start_app')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'SnippetClient._check_app_installed')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'SnippetClient._read_protocol_line')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'SnippetClient.connect')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'SnippetClient._do_start_app'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'SnippetClient._check_app_installed'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'SnippetClient._read_protocol_line'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'SnippetClient.connect'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
def test_snippet_start_app_and_connect_persistent_session(
- self, mock_get_port, mock_connect, mock_read_protocol_line,
- mock_check_app_installed, mock_do_start_app):
-
+ self,
+ mock_get_port,
+ mock_connect,
+ mock_read_protocol_line,
+ mock_check_app_installed,
+ mock_do_start_app,
+ ):
def _mocked_shell(arg):
if 'setsid' in arg:
raise adb.AdbError('cmd', 'stdout', 'stderr', 'ret_code')
@@ -415,8 +513,11 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
client._adb.current_user_id = MOCK_USER_ID
client.start_app_and_connect()
cmd_setsid = '%s am instrument --user %s -w -e action start %s/%s' % (
- snippet_client._SETSID_COMMAND, MOCK_USER_ID, MOCK_PACKAGE_NAME,
- snippet_client._INSTRUMENTATION_RUNNER_PACKAGE)
+ snippet_client._SETSID_COMMAND,
+ MOCK_USER_ID,
+ MOCK_PACKAGE_NAME,
+ snippet_client._INSTRUMENTATION_RUNNER_PACKAGE,
+ )
mock_do_start_app.assert_has_calls([mock.call(cmd_setsid)])
# Test 'setsid' does not exist, but 'nohup' exsits
@@ -424,67 +525,97 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
client._adb.shell = _mocked_shell
client.start_app_and_connect()
cmd_nohup = '%s am instrument --user %s -w -e action start %s/%s' % (
- snippet_client._NOHUP_COMMAND, MOCK_USER_ID, MOCK_PACKAGE_NAME,
- snippet_client._INSTRUMENTATION_RUNNER_PACKAGE)
+ snippet_client._NOHUP_COMMAND,
+ MOCK_USER_ID,
+ MOCK_PACKAGE_NAME,
+ snippet_client._INSTRUMENTATION_RUNNER_PACKAGE,
+ )
mock_do_start_app.assert_has_calls(
- [mock.call(cmd_setsid), mock.call(cmd_nohup)])
+ [mock.call(cmd_setsid), mock.call(cmd_nohup)]
+ )
# Test both 'setsid' and 'nohup' do not exist
client._adb.shell = mock.Mock(
- side_effect=adb.AdbError('cmd', 'stdout', 'stderr', 'ret_code'))
+ side_effect=adb.AdbError('cmd', 'stdout', 'stderr', 'ret_code')
+ )
client = self._make_client()
client.start_app_and_connect()
cmd_not_persist = ' am instrument --user %s -w -e action start %s/%s' % (
- MOCK_USER_ID, MOCK_PACKAGE_NAME,
- snippet_client._INSTRUMENTATION_RUNNER_PACKAGE)
+ MOCK_USER_ID,
+ MOCK_PACKAGE_NAME,
+ snippet_client._INSTRUMENTATION_RUNNER_PACKAGE,
+ )
mock_do_start_app.assert_has_calls([
mock.call(cmd_setsid),
mock.call(cmd_nohup),
- mock.call(cmd_not_persist)
+ mock.call(cmd_not_persist),
])
@mock.patch('socket.create_connection')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.start_standing_subprocess')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
- def test_snippet_start_app_crash(self, mock_get_port,
- mock_start_standing_subprocess,
- mock_create_connection):
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.start_standing_subprocess'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
+ def test_snippet_start_app_crash(
+ self,
+ mock_get_port,
+ mock_start_standing_subprocess,
+ mock_create_connection,
+ ):
mock_get_port.return_value = 456
self.setup_mock_socket_file(mock_create_connection)
self._setup_mock_instrumentation_cmd(
mock_start_standing_subprocess,
- resp_lines=[b'INSTRUMENTATION_RESULT: shortMsg=Process crashed.\n'])
+ resp_lines=[b'INSTRUMENTATION_RESULT: shortMsg=Process crashed.\n'],
+ )
client = self._make_client()
with self.assertRaisesRegex(
snippet_client.ProtocolVersionError,
- 'INSTRUMENTATION_RESULT: shortMsg=Process crashed.'):
+ 'INSTRUMENTATION_RESULT: shortMsg=Process crashed.',
+ ):
client.start_app_and_connect()
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.start_standing_subprocess')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.start_standing_subprocess'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
def test_snippet_start_app_and_connect_unknown_protocol(
- self, mock_get_port, mock_start_standing_subprocess):
+ self, mock_get_port, mock_start_standing_subprocess
+ ):
mock_get_port.return_value = 789
self._setup_mock_instrumentation_cmd(
mock_start_standing_subprocess,
- resp_lines=[b'SNIPPET START, PROTOCOL 99 0\n'])
+ resp_lines=[b'SNIPPET START, PROTOCOL 99 0\n'],
+ )
client = self._make_client()
- with self.assertRaisesRegex(snippet_client.ProtocolVersionError,
- 'SNIPPET START, PROTOCOL 99 0'):
+ with self.assertRaisesRegex(
+ snippet_client.ProtocolVersionError, 'SNIPPET START, PROTOCOL 99 0'
+ ):
client.start_app_and_connect()
@mock.patch('socket.create_connection')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.start_standing_subprocess')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.start_standing_subprocess'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
def test_snippet_start_app_and_connect_header_junk(
- self, mock_get_port, mock_start_standing_subprocess,
- mock_create_connection):
+ self,
+ mock_get_port,
+ mock_start_standing_subprocess,
+ mock_create_connection,
+ ):
self.setup_mock_socket_file(mock_create_connection)
self._setup_mock_instrumentation_cmd(
mock_start_standing_subprocess,
@@ -494,19 +625,27 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
b'SNIPPET START, PROTOCOL 1 0\n',
b'Maybe in the middle too\n',
b'SNIPPET SERVING, PORT 123\n',
- ])
+ ],
+ )
client = self._make_client()
client.start_app_and_connect()
self.assertEqual(123, client.device_port)
@mock.patch('socket.create_connection')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.start_standing_subprocess')
- @mock.patch('mobly.controllers.android_device_lib.snippet_client.'
- 'utils.get_available_host_port')
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.start_standing_subprocess'
+ )
+ @mock.patch(
+ 'mobly.controllers.android_device_lib.snippet_client.'
+ 'utils.get_available_host_port'
+ )
def test_snippet_start_app_and_connect_no_valid_line(
- self, mock_get_port, mock_start_standing_subprocess,
- mock_create_connection):
+ self,
+ mock_get_port,
+ mock_start_standing_subprocess,
+ mock_create_connection,
+ ):
mock_get_port.return_value = 456
self.setup_mock_socket_file(mock_create_connection)
self._setup_mock_instrumentation_cmd(
@@ -515,10 +654,13 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
b'This is some header junk\n',
b'Some phones print arbitrary output\n',
b'', # readline uses '' to mark EOF
- ])
+ ],
+ )
client = self._make_client()
- with self.assertRaisesRegex(jsonrpc_client_base.AppStartError,
- 'Unexpected EOF waiting for app to start'):
+ with self.assertRaisesRegex(
+ jsonrpc_client_base.AppStartError,
+ 'Unexpected EOF waiting for app to start',
+ ):
client.start_app_and_connect()
@mock.patch('builtins.print')
@@ -545,9 +687,12 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
def _make_client(self, adb_proxy=None):
adb_proxy = adb_proxy or mock_android_device.MockAdbProxy(
- instrumented_packages=[(MOCK_PACKAGE_NAME,
- snippet_client._INSTRUMENTATION_RUNNER_PACKAGE,
- MOCK_PACKAGE_NAME)])
+ instrumented_packages=[(
+ MOCK_PACKAGE_NAME,
+ snippet_client._INSTRUMENTATION_RUNNER_PACKAGE,
+ MOCK_PACKAGE_NAME,
+ )]
+ )
ad = mock.Mock()
ad.adb = adb_proxy
ad.adb.current_user_id = MOCK_USER_ID
@@ -557,11 +702,12 @@ class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
}
return snippet_client.SnippetClient(package=MOCK_PACKAGE_NAME, ad=ad)
- def _setup_mock_instrumentation_cmd(self, mock_start_standing_subprocess,
- resp_lines):
+ def _setup_mock_instrumentation_cmd(
+ self, mock_start_standing_subprocess, resp_lines
+ ):
mock_proc = mock_start_standing_subprocess()
mock_proc.stdout.readline.side_effect = resp_lines
-if __name__ == "__main__":
+if __name__ == '__main__':
unittest.main()