diff options
author | Ziwei Zhang <zhangxh@google.com> | 2024-04-11 11:19:01 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2024-04-11 11:19:01 +0000 |
commit | 0200298ea2fad510f62486b60ba27918e525e781 (patch) | |
tree | f8869eb48e3de9e7c345310bc19cce3ce968b527 /tests/mobly/controllers/android_device_lib/services | |
parent | a529b98b550f5d2cdb797699d6528ca5454759a6 (diff) | |
parent | 51b0b7394aa1bbf4812fb4e8f734a2b5f0939494 (diff) | |
download | mobly-main.tar.gz |
Original change: https://android-review.googlesource.com/c/platform/external/python/mobly/+/3031248
Change-Id: Idb764ab6fb79c35eca72dcd89d3fb24d336c86ea
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'tests/mobly/controllers/android_device_lib/services')
-rwxr-xr-x | tests/mobly/controllers/android_device_lib/services/logcat_test.py | 390 | ||||
-rwxr-xr-x | tests/mobly/controllers/android_device_lib/services/snippet_management_service_test.py | 70 |
2 files changed, 299 insertions, 161 deletions
diff --git a/tests/mobly/controllers/android_device_lib/services/logcat_test.py b/tests/mobly/controllers/android_device_lib/services/logcat_test.py index df15d76..66a20f8 100755 --- a/tests/mobly/controllers/android_device_lib/services/logcat_test.py +++ b/tests/mobly/controllers/android_device_lib/services/logcat_test.py @@ -29,24 +29,25 @@ from tests.lib import mock_android_device # The expected result of the cat adb operation. MOCK_ADB_LOGCAT_CAT_RESULT = [ '02-29 14:02:21.456 4454 Something\n', - '02-29 14:02:21.789 4454 Something again\n' + '02-29 14:02:21.789 4454 Something again\n', ] # A mocked piece of adb logcat output. -MOCK_ADB_LOGCAT = (u'02-29 14:02:19.123 4454 Nothing\n' - u'%s' - u'02-29 14:02:22.123 4454 Something again and again\n' - ) % u''.join(MOCK_ADB_LOGCAT_CAT_RESULT) +MOCK_ADB_LOGCAT = ( + '02-29 14:02:19.123 4454 Nothing\n' + '%s' + '02-29 14:02:22.123 4454 Something again and again\n' +) % ''.join(MOCK_ADB_LOGCAT_CAT_RESULT) # The expected result of the cat adb operation. MOCK_ADB_UNICODE_LOGCAT_CAT_RESULT = [ '02-29 14:02:21.456 4454 Something \u901a\n', - '02-29 14:02:21.789 4454 Something again\n' + '02-29 14:02:21.789 4454 Something again\n', ] # A mocked piece of adb logcat output. MOCK_ADB_UNICODE_LOGCAT = ( - u'02-29 14:02:19.123 4454 Nothing\n' - u'%s' - u'02-29 14:02:22.123 4454 Something again and again\n' -) % u''.join(MOCK_ADB_UNICODE_LOGCAT_CAT_RESULT) + '02-29 14:02:19.123 4454 Nothing\n' + '%s' + '02-29 14:02:22.123 4454 Something again and again\n' +) % ''.join(MOCK_ADB_UNICODE_LOGCAT_CAT_RESULT) # Mock start and end time of the adb cat. MOCK_ADB_LOGCAT_BEGIN_TIME = '02-29 14:02:20.123' @@ -54,11 +55,17 @@ MOCK_ADB_LOGCAT_END_TIME = '02-29 14:02:22.000' # Mock AdbError for missing logpersist scripts MOCK_LOGPERSIST_STOP_MISSING_ADB_ERROR = adb.AdbError( - 'logpersist.stop --clear', b'', - '/system/bin/sh: logpersist.stop: not found', 0) + 'logpersist.stop --clear', + b'', + '/system/bin/sh: logpersist.stop: not found', + 0, +) MOCK_LOGPERSIST_START_MISSING_ADB_ERROR = adb.AdbError( - 'logpersist.start --clear', b'', - b'/system/bin/sh: logpersist.stop: not found', 0) + 'logpersist.start --clear', + b'', + b'/system/bin/sh: logpersist.stop: not found', + 0, +) class LogcatTest(unittest.TestCase): @@ -72,8 +79,7 @@ class LogcatTest(unittest.TestCase): self.tmp_dir = tempfile.mkdtemp() def tearDown(self): - """Removes the temp dir. - """ + """Removes the temp dir.""" shutil.rmtree(self.tmp_dir) def AssertFileContains(self, content, file_path): @@ -86,18 +92,29 @@ class LogcatTest(unittest.TestCase): output = f.read() self.assertNotIn(content, output) - @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.stop_standing_subprocess') @mock.patch.object(logcat.Logcat, '_open_logcat_file') @mock.patch('mobly.logger.get_log_file_timestamp') - def test_start_and_stop(self, get_timestamp_mock, open_logcat_mock, - stop_proc_mock, start_proc_mock, create_dir_mock, - FastbootProxy, MockAdbProxy): + def test_start_and_stop( + self, + get_timestamp_mock, + open_logcat_mock, + stop_proc_mock, + start_proc_mock, + create_dir_mock, + FastbootProxy, + MockAdbProxy, + ): """Verifies the steps of collecting adb logcat on an AndroidDevice object, including various function calls and the expected behaviors of the calls. @@ -109,17 +126,18 @@ class LogcatTest(unittest.TestCase): logcat_service.start() # Verify start did the correct operations. self.assertTrue(logcat_service._adb_logcat_process) - expected_log_path = os.path.join(logging.log_path, - 'AndroidDevice%s' % ad.serial, - 'logcat,%s,fakemodel,123.txt' % ad.serial) + expected_log_path = os.path.join( + logging.log_path, + 'AndroidDevice%s' % ad.serial, + 'logcat,%s,fakemodel,123.txt' % ad.serial, + ) create_dir_mock.assert_called_with(os.path.dirname(expected_log_path)) adb_cmd = ' "adb" -s %s logcat -v threadtime -T 1 >> %s' - start_proc_mock.assert_called_with(adb_cmd % - (ad.serial, '"%s" ' % expected_log_path), - shell=True) + start_proc_mock.assert_called_with( + adb_cmd % (ad.serial, '"%s" ' % expected_log_path), shell=True + ) self.assertEqual(logcat_service.adb_logcat_file_path, expected_log_path) - expected_msg = ('Logcat thread is already running, cannot start another' - ' one.') + expected_msg = 'Logcat thread is already running, cannot start another one.' # Expect error if start is called back to back. with self.assertRaisesRegex(logcat.Error, expected_msg): logcat_service.start() @@ -129,15 +147,21 @@ class LogcatTest(unittest.TestCase): self.assertIsNone(logcat_service._adb_logcat_process) self.assertEqual(logcat_service.adb_logcat_file_path, expected_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.start_standing_subprocess') - @mock.patch('mobly.controllers.android_device.list_fastboot_devices', - return_value='1') - def test_start_in_fastboot_mode(self, _, start_proc_mock, FastbootProxy, - MockAdbProxy): + @mock.patch( + 'mobly.controllers.android_device.list_fastboot_devices', return_value='1' + ) + def test_start_in_fastboot_mode( + self, _, start_proc_mock, FastbootProxy, MockAdbProxy + ): mock_serial = '1' ad = android_device.AndroidDevice(serial=mock_serial) logcat_service = logcat.Logcat(ad) @@ -146,17 +170,27 @@ class LogcatTest(unittest.TestCase): self.assertFalse(logcat_service._adb_logcat_process) start_proc_mock.assert_not_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.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.stop_standing_subprocess') @mock.patch.object(logcat.Logcat, '_open_logcat_file') - def test_update_config(self, open_logcat_mock, stop_proc_mock, - start_proc_mock, create_dir_mock, FastbootProxy, - MockAdbProxy): + def test_update_config( + self, + open_logcat_mock, + stop_proc_mock, + start_proc_mock, + create_dir_mock, + FastbootProxy, + MockAdbProxy, + ): mock_serial = '1' ad = android_device.AndroidDevice(serial=mock_serial) logcat_service = logcat.Logcat(ad) @@ -164,56 +198,82 @@ class LogcatTest(unittest.TestCase): logcat_service.stop() new_log_params = '-a -b -c' new_file_path = 'some/path/log.txt' - new_config = logcat.Config(logcat_params=new_log_params, - output_file_path=new_file_path) + new_config = logcat.Config( + logcat_params=new_log_params, output_file_path=new_file_path + ) logcat_service.update_config(new_config) logcat_service.start() self.assertTrue(logcat_service._adb_logcat_process) create_dir_mock.assert_has_calls([mock.call('some/path')]) - expected_adb_cmd = (' "adb" -s 1 logcat -v threadtime -T 1 -a -b -c >> ' - '"some/path/log.txt" ') + expected_adb_cmd = ( + ' "adb" -s 1 logcat -v threadtime -T 1 -a -b -c >> "some/path/log.txt" ' + ) start_proc_mock.assert_called_with(expected_adb_cmd, shell=True) self.assertEqual(logcat_service.adb_logcat_file_path, 'some/path/log.txt') logcat_service.stop() - @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.stop_standing_subprocess') @mock.patch.object(logcat.Logcat, '_open_logcat_file') - def test_update_config_while_running(self, open_logcat_mock, stop_proc_mock, - start_proc_mock, create_dir_mock, - FastbootProxy, MockAdbProxy): + def test_update_config_while_running( + self, + open_logcat_mock, + stop_proc_mock, + start_proc_mock, + create_dir_mock, + FastbootProxy, + MockAdbProxy, + ): mock_serial = '1' ad = android_device.AndroidDevice(serial=mock_serial) logcat_service = logcat.Logcat(ad) logcat_service.start() - new_config = logcat.Config(logcat_params='-blah', - output_file_path='some/path/file.txt') + new_config = logcat.Config( + logcat_params='-blah', output_file_path='some/path/file.txt' + ) with self.assertRaisesRegex( logcat.Error, - 'Logcat thread is already running, cannot start another one'): + 'Logcat thread is already running, cannot start another one', + ): logcat_service.update_config(new_config) self.assertTrue(logcat_service.is_alive) logcat_service.stop() - @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.stop_standing_subprocess') @mock.patch.object(logcat.Logcat, '_open_logcat_file') @mock.patch( 'mobly.controllers.android_device_lib.services.logcat.Logcat.clear_adb_log', - return_value=mock_android_device.MockAdbProxy('1')) - def test_pause_and_resume(self, clear_adb_mock, open_logcat_mock, - stop_proc_mock, start_proc_mock, create_dir_mock, - FastbootProxy, MockAdbProxy): + return_value=mock_android_device.MockAdbProxy('1'), + ) + def test_pause_and_resume( + self, + clear_adb_mock, + open_logcat_mock, + stop_proc_mock, + start_proc_mock, + create_dir_mock, + FastbootProxy, + MockAdbProxy, + ): mock_serial = '1' ad = android_device.AndroidDevice(serial=mock_serial) logcat_service = logcat.Logcat(ad, logcat.Config(clear_log=True)) @@ -230,44 +290,58 @@ class LogcatTest(unittest.TestCase): clear_adb_mock.assert_not_called() logcat_service.stop() - @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.start_standing_subprocess', return_value='process') @mock.patch('mobly.utils.stop_standing_subprocess') @mock.patch( 'mobly.controllers.android_device_lib.services.logcat.Logcat.clear_adb_log', - return_value=mock_android_device.MockAdbProxy('1')) - def test_logcat_service_create_output_excerpts(self, clear_adb_mock, - stop_proc_mock, - start_proc_mock, FastbootProxy, - MockAdbProxy): + return_value=mock_android_device.MockAdbProxy('1'), + ) + def test_logcat_service_create_output_excerpts( + self, + clear_adb_mock, + stop_proc_mock, + start_proc_mock, + FastbootProxy, + MockAdbProxy, + ): mock_serial = '1' ad = android_device.AndroidDevice(serial=mock_serial) logcat_service = logcat.Logcat(ad) logcat_service._start() - def _write_logcat_file_and_assert_excerpts_exists(logcat_file_content, - test_begin_time, - test_name): + def _write_logcat_file_and_assert_excerpts_exists( + logcat_file_content, test_begin_time, test_name + ): with open(logcat_service.adb_logcat_file_path, 'a') as f: f.write(logcat_file_content) test_output_dir = os.path.join(self.tmp_dir, test_name) mock_record = records.TestResultRecord(test_name) mock_record.begin_time = test_begin_time mock_record.signature = f'{test_name}-{test_begin_time}' - test_run_info = runtime_test_info.RuntimeTestInfo(test_name, - test_output_dir, - mock_record) + test_run_info = runtime_test_info.RuntimeTestInfo( + test_name, test_output_dir, mock_record + ) actual_path = logcat_service.create_output_excerpts(test_run_info)[0] expected_path = os.path.join( - test_output_dir, '{test_name}-{test_begin_time}'.format( - test_name=test_name, test_begin_time=test_begin_time), - 'logcat,{mock_serial},fakemodel,{test_name}-{test_begin_time}.txt'. - format(mock_serial=mock_serial, - test_name=test_name, - test_begin_time=test_begin_time)) + test_output_dir, + '{test_name}-{test_begin_time}'.format( + test_name=test_name, test_begin_time=test_begin_time + ), + 'logcat,{mock_serial},fakemodel,{test_name}-{test_begin_time}.txt' + .format( + mock_serial=mock_serial, + test_name=test_name, + test_begin_time=test_begin_time, + ), + ) self.assertEqual(actual_path, expected_path) self.assertTrue(os.path.exists(expected_path)) return expected_path @@ -306,19 +380,29 @@ class LogcatTest(unittest.TestCase): ) self.assertEqual(os.stat(expected_path3).st_size, 0) - @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.stop_standing_subprocess') @mock.patch.object(logcat.Logcat, '_open_logcat_file') @mock.patch('mobly.logger.get_log_file_timestamp') - def test_take_logcat_with_extra_params(self, get_timestamp_mock, - open_logcat_mock, stop_proc_mock, - start_proc_mock, create_dir_mock, - FastbootProxy, MockAdbProxy): + def test_take_logcat_with_extra_params( + self, + get_timestamp_mock, + open_logcat_mock, + stop_proc_mock, + start_proc_mock, + create_dir_mock, + FastbootProxy, + MockAdbProxy, + ): """Verifies the steps of collecting adb logcat on an AndroidDevice object, including various function calls and the expected behaviors of the calls. @@ -332,21 +416,27 @@ class LogcatTest(unittest.TestCase): logcat_service.start() # Verify start did the correct operations. self.assertTrue(logcat_service._adb_logcat_process) - expected_log_path = os.path.join(logging.log_path, - 'AndroidDevice%s' % ad.serial, - 'logcat,%s,fakemodel,123.txt' % ad.serial) + expected_log_path = os.path.join( + logging.log_path, + 'AndroidDevice%s' % ad.serial, + 'logcat,%s,fakemodel,123.txt' % ad.serial, + ) create_dir_mock.assert_called_with(os.path.dirname(expected_log_path)) adb_cmd = ' "adb" -s %s logcat -v threadtime -T 1 -b radio >> %s' - start_proc_mock.assert_called_with(adb_cmd % - (ad.serial, '"%s" ' % expected_log_path), - shell=True) + start_proc_mock.assert_called_with( + adb_cmd % (ad.serial, '"%s" ' % expected_log_path), shell=True + ) self.assertEqual(logcat_service.adb_logcat_file_path, expected_log_path) logcat_service.stop() - @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_instantiation(self, MockFastboot, MockAdbProxy): """Verifies the AndroidDevice object's basic attributes are correctly set after instantiation. @@ -357,10 +447,14 @@ class LogcatTest(unittest.TestCase): self.assertIsNone(logcat_service._adb_logcat_process) self.assertIsNone(logcat_service.adb_logcat_file_path) - @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy', - return_value=mock.MagicMock()) - @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.MagicMock(), + ) + @mock.patch( + 'mobly.controllers.android_device_lib.fastboot.FastbootProxy', + return_value=mock_android_device.MockFastbootProxy('1'), + ) def test__enable_logpersist_with_logpersist(self, MockFastboot, MockAdbProxy): mock_serial = '1' mock_adb_proxy = MockAdbProxy.return_value @@ -381,12 +475,17 @@ class LogcatTest(unittest.TestCase): mock.call('logpersist.start'), ]) - @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy', - return_value=mock.MagicMock()) - @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy', - return_value=mock_android_device.MockFastbootProxy('1')) - def test__enable_logpersist_with_user_build_device(self, MockFastboot, - MockAdbProxy): + @mock.patch( + 'mobly.controllers.android_device_lib.adb.AdbProxy', + return_value=mock.MagicMock(), + ) + @mock.patch( + 'mobly.controllers.android_device_lib.fastboot.FastbootProxy', + return_value=mock_android_device.MockFastbootProxy('1'), + ) + def test__enable_logpersist_with_user_build_device( + self, MockFastboot, MockAdbProxy + ): mock_serial = '1' mock_adb_proxy = MockAdbProxy.return_value mock_adb_proxy.getprops.return_value = { @@ -403,13 +502,17 @@ class LogcatTest(unittest.TestCase): logcat_service._enable_logpersist() mock_adb_proxy.shell.assert_not_called() - @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy', - return_value=mock.MagicMock()) - @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.MagicMock(), + ) + @mock.patch( + 'mobly.controllers.android_device_lib.fastboot.FastbootProxy', + return_value=mock_android_device.MockFastbootProxy('1'), + ) def test__enable_logpersist_with_missing_all_logpersist( - self, MockFastboot, MockAdbProxy): - + self, MockFastboot, MockAdbProxy + ): def adb_shell_helper(command): if command == 'logpersist.start': raise MOCK_LOGPERSIST_START_MISSING_ADB_ERROR @@ -435,13 +538,17 @@ class LogcatTest(unittest.TestCase): logcat_service._enable_logpersist() mock_adb_proxy.shell.assert_not_called() - @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy', - return_value=mock.MagicMock()) - @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.MagicMock(), + ) + @mock.patch( + 'mobly.controllers.android_device_lib.fastboot.FastbootProxy', + return_value=mock_android_device.MockFastbootProxy('1'), + ) def test__enable_logpersist_with_missing_logpersist_stop( - self, MockFastboot, MockAdbProxy): - + self, MockFastboot, MockAdbProxy + ): def adb_shell_helper(command): if command == 'logpersist.stop --clear': raise MOCK_LOGPERSIST_STOP_MISSING_ADB_ERROR @@ -467,13 +574,17 @@ class LogcatTest(unittest.TestCase): mock.call('logpersist.stop --clear'), ]) - @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy', - return_value=mock.MagicMock()) - @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.MagicMock(), + ) + @mock.patch( + 'mobly.controllers.android_device_lib.fastboot.FastbootProxy', + return_value=mock_android_device.MockFastbootProxy('1'), + ) def test__enable_logpersist_with_missing_logpersist_start( - self, MockFastboot, MockAdbProxy): - + self, MockFastboot, MockAdbProxy + ): def adb_shell_helper(command): if command == 'logpersist.start': raise MOCK_LOGPERSIST_START_MISSING_ADB_ERROR @@ -498,14 +609,17 @@ class LogcatTest(unittest.TestCase): mock_adb_proxy.shell.assert_not_called() @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy') - @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy', - return_value=mock_android_device.MockFastbootProxy('1')) + @mock.patch( + 'mobly.controllers.android_device_lib.fastboot.FastbootProxy', + return_value=mock_android_device.MockFastbootProxy('1'), + ) def test_clear_adb_log(self, MockFastboot, MockAdbProxy): mock_serial = '1' ad = android_device.AndroidDevice(serial=mock_serial) ad.adb.logcat = mock.MagicMock() ad.adb.logcat.side_effect = adb.AdbError( - cmd='cmd', stdout=b'', stderr=b'failed to clear "main" log', ret_code=1) + cmd='cmd', stdout=b'', stderr=b'failed to clear "main" log', ret_code=1 + ) logcat_service = logcat.Logcat(ad) logcat_service.clear_adb_log() diff --git a/tests/mobly/controllers/android_device_lib/services/snippet_management_service_test.py b/tests/mobly/controllers/android_device_lib/services/snippet_management_service_test.py index 16a30aa..b6431d5 100755 --- a/tests/mobly/controllers/android_device_lib/services/snippet_management_service_test.py +++ b/tests/mobly/controllers/android_device_lib/services/snippet_management_service_test.py @@ -19,7 +19,9 @@ from mobly.controllers.android_device_lib import snippet_client_v2 from mobly.controllers.android_device_lib.services import snippet_management_service MOCK_PACKAGE = 'com.mock.package' -SNIPPET_CLIENT_V2_CLASS_PATH = 'mobly.controllers.android_device_lib.snippet_client_v2.SnippetClientV2' +SNIPPET_CLIENT_V2_CLASS_PATH = ( + 'mobly.controllers.android_device_lib.snippet_client_v2.SnippetClientV2' +) class SnippetManagementServiceTest(unittest.TestCase): @@ -27,7 +29,8 @@ class SnippetManagementServiceTest(unittest.TestCase): def test_empty_manager_start_stop(self): manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.start() # When no client is registered, manager is never alive. self.assertFalse(manager.is_alive) @@ -38,21 +41,24 @@ class SnippetManagementServiceTest(unittest.TestCase): def test_get_snippet_client(self, mock_class): mock_client = mock_class.return_value manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) self.assertEqual(manager.get_snippet_client('foo'), mock_client) @mock.patch(SNIPPET_CLIENT_V2_CLASS_PATH) def test_get_snippet_client_fail(self, _): manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) self.assertIsNone(manager.get_snippet_client('foo')) @mock.patch(SNIPPET_CLIENT_V2_CLASS_PATH) def test_stop_with_live_client(self, mock_class): mock_client = mock_class.return_value manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) mock_client.initialize.assert_called_once_with() manager.stop() @@ -67,28 +73,35 @@ class SnippetManagementServiceTest(unittest.TestCase): def test_add_snippet_client_without_config(self, mock_class): mock_client = mock_class.return_value manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) mock_class.assert_called_once_with( - package=mock.ANY, ad=mock.ANY, config=None) + package=mock.ANY, ad=mock.ANY, config=None + ) @mock.patch(SNIPPET_CLIENT_V2_CLASS_PATH) def test_add_snippet_client_with_config(self, mock_class): mock_client = mock_class.return_value manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) snippet_config = snippet_client_v2.Config() manager.add_snippet_client('foo', MOCK_PACKAGE, snippet_config) mock_class.assert_called_once_with( - package=mock.ANY, ad=mock.ANY, config=snippet_config) + package=mock.ANY, ad=mock.ANY, config=snippet_config + ) @mock.patch(SNIPPET_CLIENT_V2_CLASS_PATH) def test_add_snippet_client_dup_name(self, _): manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) - msg = ('.* Name "foo" is already registered with package ".*", it ' - 'cannot be used again.') + msg = ( + '.* Name "foo" is already registered with package ".*", it ' + 'cannot be used again.' + ) with self.assertRaisesRegex(snippet_management_service.Error, msg): manager.add_snippet_client('foo', MOCK_PACKAGE + 'ha') @@ -97,10 +110,13 @@ class SnippetManagementServiceTest(unittest.TestCase): mock_client = mock_class.return_value mock_client.package = MOCK_PACKAGE manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) - msg = ('Snippet package "com.mock.package" has already been loaded ' - 'under name "foo".') + msg = ( + 'Snippet package "com.mock.package" has already been loaded ' + 'under name "foo".' + ) with self.assertRaisesRegex(snippet_management_service.Error, msg): manager.add_snippet_client('bar', MOCK_PACKAGE) @@ -109,7 +125,8 @@ class SnippetManagementServiceTest(unittest.TestCase): mock_client = mock.MagicMock() mock_class.return_value = mock_client manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) manager.remove_snippet_client('foo') msg = 'No snippet client is registered with name "foo".' @@ -121,17 +138,20 @@ class SnippetManagementServiceTest(unittest.TestCase): mock_client = mock.MagicMock() mock_class.return_value = mock_client manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) with self.assertRaisesRegex( snippet_management_service.Error, - 'No snippet client is registered with name "foo".'): + 'No snippet client is registered with name "foo".', + ): manager.remove_snippet_client('foo') @mock.patch(SNIPPET_CLIENT_V2_CLASS_PATH) def test_start_with_live_service(self, mock_class): mock_client = mock_class.return_value manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) mock_client.initialize.reset_mock() mock_client.is_alive = True @@ -146,7 +166,8 @@ class SnippetManagementServiceTest(unittest.TestCase): def test_pause(self, mock_class): mock_client = mock_class.return_value manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) manager.pause() mock_client.close_connection.assert_called_once_with() @@ -155,7 +176,8 @@ class SnippetManagementServiceTest(unittest.TestCase): def test_resume_positive_case(self, mock_class): mock_client = mock_class.return_value manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) mock_client.is_alive = False manager.resume() @@ -165,7 +187,8 @@ class SnippetManagementServiceTest(unittest.TestCase): def test_resume_negative_case(self, mock_class): mock_client = mock_class.return_value manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) mock_client.is_alive = True manager.resume() @@ -176,7 +199,8 @@ class SnippetManagementServiceTest(unittest.TestCase): mock_client = mock.MagicMock() mock_class.return_value = mock_client manager = snippet_management_service.SnippetManagementService( - mock.MagicMock()) + mock.MagicMock() + ) manager.add_snippet_client('foo', MOCK_PACKAGE) manager.foo.ha('param') mock_client.ha.assert_called_once_with('param') |