Esempio n. 1
0
 def test_unregister(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service', MockService)
     service = manager.mock_service
     manager.unregister('mock_service')
     self.assertFalse(manager.is_any_alive)
     self.assertFalse(service.is_alive)
Esempio n. 2
0
 def test_start_services(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService, start_service=False)
     manager.register('mock_service2', MockService, start_service=False)
     manager.start_services(['mock_service2'])
     aliases = manager.list_live_services()
     self.assertEqual(aliases, ['mock_service2'])
Esempio n. 3
0
    def test_register_wrong_subclass_type(self):
        class MyClass(object):
            pass

        manager = service_manager.ServiceManager(mock.MagicMock())
        with self.assertRaisesRegex(service_manager.Error,
                                    '.* is not a subclass of BaseService!'):
            manager.register('mock_service', MyClass)
Esempio n. 4
0
 def test_register_with_configs(self):
     mock_configs = mock.MagicMock()
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service', MockService, configs=mock_configs)
     service = manager.mock_service
     self.assertTrue(service)
     self.assertEqual(service._configs, mock_configs)
     self.assertEqual(service.start_func.call_count, 1)
Esempio n. 5
0
 def test_unregister_handle_error_from_stop(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service', MockService)
     service = manager.mock_service
     service.stop_func.side_effect = Exception('Something failed in stop.')
     manager.unregister('mock_service')
     self.assert_recorded_one_error(
         'Failed to stop service instance "mock_service".')
Esempio n. 6
0
 def test_register_do_not_start_service(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service', MockService, start_service=False)
     service = manager.mock_service
     self.assertTrue(service)
     self.assertFalse(service.is_alive)
     self.assertFalse(manager.is_any_alive)
     self.assertEqual(service.start_func.call_count, 0)
Esempio n. 7
0
 def test_register(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service', MockService)
     service = manager.mock_service
     self.assertTrue(service)
     self.assertTrue(service.is_alive)
     self.assertTrue(manager.is_any_alive)
     self.assertEqual(service.alias, 'mock_service')
     self.assertEqual(service.start_func.call_count, 1)
Esempio n. 8
0
 def test_unregister_handle_error_from_stop(self, mock_expect_func):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service', MockService)
     service = manager.mock_service
     service._device.stop.side_deffect = Exception(
         'Something failed in stop.')
     manager.unregister('mock_service')
     mock_expect_func.assert_called_once_with(
         'Failed to stop service instance "mock_service".')
Esempio n. 9
0
 def test_resume_services(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     manager.pause_all()
     aliases = manager.list_live_services()
     self.assertEqual(aliases, [])
     manager.resume_services(['mock_service2'])
     aliases = manager.list_live_services()
     self.assertEqual(aliases, ['mock_service2'])
Esempio n. 10
0
 def test_unregister_all(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     manager.unregister_all()
     self.assertFalse(manager.is_any_alive)
     self.assertFalse(service1.is_alive)
     self.assertFalse(service2.is_alive)
Esempio n. 11
0
 def test_for_each_modify_during_iteration(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     service1.ha = mock.MagicMock()
     service2.ha = mock.MagicMock()
     manager.for_each(
         lambda service: manager._service_objects.pop(service.alias))
     self.assertFalse(manager._service_objects)
Esempio n. 12
0
 def test_for_each(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     service1.ha = mock.MagicMock()
     service2.ha = mock.MagicMock()
     manager.for_each(lambda service: service.ha())
     service1.ha.assert_called_with()
     service2.ha.assert_called_with()
Esempio n. 13
0
 def test_resume_all_with_some_failed(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service1._device.resume.side_deffect = Exception(
         'Something failed in resume.')
     service2 = manager.mock_service2
     manager.pause_all()
     manager.resume_all()
     self.assertTrue(service2.is_resume_called)
Esempio n. 14
0
 def test_pause_all(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     manager.pause_all()
     self.assertTrue(service1.is_pause_called)
     self.assertTrue(service2.is_pause_called)
     self.assertFalse(service1.is_resume_called)
     self.assertFalse(service2.is_resume_called)
Esempio n. 15
0
 def test_pause_all(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     manager.pause_all()
     self.assertEqual(service1.pause_func.call_count, 1)
     self.assertEqual(service2.pause_func.call_count, 1)
     self.assertEqual(service1.resume_func.call_count, 0)
     self.assertEqual(service2.resume_func.call_count, 0)
Esempio n. 16
0
 def test_start_all(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService, start_service=False)
     manager.register('mock_service2', MockService, start_service=False)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     manager.start_all()
     self.assertTrue(service1.is_alive)
     self.assertTrue(service2.is_alive)
     self.assertEqual(service1.start_func.call_count, 1)
     self.assertEqual(service2.start_func.call_count, 1)
Esempio n. 17
0
 def test_unregister_all_with_some_failed(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service1._device.stop.side_deffect = Exception(
         'Something failed in stop.')
     service2 = manager.mock_service2
     manager.unregister_all()
     self.assertFalse(manager.is_any_alive)
     self.assertFalse(service1.is_alive)
     self.assertFalse(service2.is_alive)
Esempio n. 18
0
 def test_for_each_one_fail(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     service1.ha = mock.MagicMock()
     service1.ha.side_effect = Exception('Failure in service1.')
     service2.ha = mock.MagicMock()
     manager.for_each(lambda service: service.ha())
     service1.ha.assert_called_with()
     service2.ha.assert_called_with()
     self.assert_recorded_one_error('Failure in service1.')
Esempio n. 19
0
 def test_stop_all_with_some_failed(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service1.stop_func.side_effect = Exception(
         'Something failed in start.')
     service2 = manager.mock_service2
     manager.stop_all()
     self.assertTrue(service1.is_alive)
     self.assertFalse(service2.is_alive)
     self.assert_recorded_one_error(
         'Failed to stop service "mock_service1"')
Esempio n. 20
0
 def test_pause_all_with_some_failed(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service1.pause_func.side_effect = Exception(
         'Something failed in pause.')
     service2 = manager.mock_service2
     manager.pause_all()
     self.assertEqual(service1.pause_func.call_count, 1)
     self.assertEqual(service2.pause_func.call_count, 1)
     self.assertEqual(service1.resume_func.call_count, 0)
     self.assertEqual(service2.resume_func.call_count, 0)
     self.assert_recorded_one_error(
         'Failed to pause service "mock_service1".')
Esempio n. 21
0
 def test_pause_all(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     mock_call_tracker = mock.Mock()
     mock_call_tracker.pause1 = service1.pause_func
     mock_call_tracker.pause2 = service2.pause_func
     manager.pause_all()
     self.assertEqual(
         mock_call_tracker.mock_calls,
         [mock.call.pause2(), mock.call.pause1()])
     self.assertEqual(service1.pause_func.call_count, 1)
     self.assertEqual(service2.pause_func.call_count, 1)
     self.assertEqual(service1.resume_func.call_count, 0)
     self.assertEqual(service2.resume_func.call_count, 0)
Esempio n. 22
0
 def test_start_all(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService, start_service=False)
     manager.register('mock_service2', MockService, start_service=False)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     mock_call_tracker = mock.Mock()
     mock_call_tracker.start1 = service1.start_func
     mock_call_tracker.start2 = service2.start_func
     manager.start_all()
     self.assertTrue(service1.is_alive)
     self.assertTrue(service2.is_alive)
     self.assertEqual(service1.start_func.call_count, 1)
     self.assertEqual(service2.start_func.call_count, 1)
     self.assertEqual(mock_call_tracker.mock_calls,
                      [mock.call.start1(None),
                       mock.call.start2(None)])
Esempio n. 23
0
 def __init__(self, serial=''):
     self._serial = str(serial)
     # logging.log_path only exists when this is used in an Mobly test run.
     self._log_path_base = getattr(logging, 'log_path', '/tmp/logs')
     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.adb = adb.AdbProxy(serial)
     self.fastboot = fastboot.FastbootProxy(serial)
     if not self.is_bootloader and self.is_rootable:
         self.root_adb()
     self.services = service_manager.ServiceManager(self)
     self.services.register(
         'snippets', snippet_management_service.SnippetManagementService)
     # Device info cache.
     self._user_added_device_info = {}
Esempio n. 24
0
 def test_stop_all(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     mock_call_tracker = mock.Mock()
     mock_call_tracker.stop1 = service1.stop_func
     mock_call_tracker.stop2 = service2.stop_func
     manager.stop_all()
     self.assertFalse(service1.is_alive)
     self.assertFalse(service2.is_alive)
     self.assertEqual(
         mock_call_tracker.mock_calls,
         [mock.call.stop2(), mock.call.stop1()])
     self.assertEqual(service1.start_func.call_count, 1)
     self.assertEqual(service2.start_func.call_count, 1)
     self.assertEqual(service1.stop_func.call_count, 1)
     self.assertEqual(service2.stop_func.call_count, 1)
Esempio n. 25
0
 def test_create_output_excerpts_all(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service1', MockService)
     manager.register('mock_service2', MockService)
     manager.register('mock_service3', MockService)
     service1 = manager.mock_service1
     service2 = manager.mock_service2
     service3 = manager.mock_service3
     service1.create_output_excerpts = mock.MagicMock()
     service2.create_output_excerpts = mock.MagicMock()
     service3.create_output_excerpts = mock.MagicMock()
     service1.create_output_excerpts.return_value = ['path/to/1.txt']
     service2.create_output_excerpts.return_value = [
         'path/to/2-1.txt', 'path/to/2-2.txt'
     ]
     service3.create_output_excerpts.return_value = []
     mock_test_info = mock.MagicMock(output_path='path/to')
     result = manager.create_output_excerpts_all(mock_test_info)
     self.assertEqual(result['mock_service1'], ['path/to/1.txt'])
     self.assertEqual(result['mock_service2'],
                      ['path/to/2-1.txt', 'path/to/2-2.txt'])
     self.assertEqual(result['mock_service3'], [])
Esempio n. 26
0
 def test_register_with_service_manager(self, _):
     mock_device = mock.MagicMock()
     manager = service_manager.ServiceManager(mock_device)
     manager.register('sl4a', sl4a_service.Sl4aService)
     self.assertTrue(manager.sl4a)
Esempio n. 27
0
 def test_register_not_a_class(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     with self.assertRaisesRegex(service_manager.Error,
                                 '.* is not a class!'):
         manager.register('mock_service', base_service)
Esempio n. 28
0
 def test_register_dup_alias(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     manager.register('mock_service', MockService)
     msg = '.* A service is already registered with alias "mock_service"'
     with self.assertRaisesRegex(service_manager.Error, msg):
         manager.register('mock_service', MockService)
Esempio n. 29
0
 def test_service_manager_instantiation(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
Esempio n. 30
0
 def test_unregister_non_existent(self):
     manager = service_manager.ServiceManager(mock.MagicMock())
     with self.assertRaisesRegex(
             service_manager.Error,
             '.* No service is registered with alias "mock_service"'):
         manager.unregister('mock_service')