def test_service_with_min_down_time(self): CONF.set_override('service_down_time', 10) CONF.set_override('report_interval', 10) serv = service.Service('test', 'test', 'test', 'patron.tests.unit.test_service.FakeManager') serv.start() self.assertEqual(CONF.service_down_time, 25)
def test_parent_graceful_shutdown(self): self.manager_mock = self.mox.CreateMock(FakeManager) self.mox.StubOutWithMock(sys.modules[__name__], 'FakeManager', use_mock_anything=True) self.mox.StubOutWithMock(self.manager_mock, 'init_host') self.mox.StubOutWithMock(self.manager_mock, 'pre_start_hook') self.mox.StubOutWithMock(self.manager_mock, 'post_start_hook') self.mox.StubOutWithMock(_service.Service, 'stop') FakeManager(host=self.host).AndReturn(self.manager_mock) self.manager_mock.service_name = self.topic self.manager_mock.additional_endpoints = [] # init_host is called before any service record is created self.manager_mock.init_host() self._service_start_mocks() # pre_start_hook is called after service record is created, # but before RPC consumer is created self.manager_mock.pre_start_hook() # post_start_hook is called after RPC consumer is created. self.manager_mock.post_start_hook() _service.Service.stop() self.mox.ReplayAll() serv = service.Service(self.host, self.binary, self.topic, 'patron.tests.unit.test_service.FakeManager') serv.start() serv.stop()
def _test_service_check_create_race(self, ex): self.manager_mock = self.mox.CreateMock(FakeManager) self.mox.StubOutWithMock(sys.modules[__name__], 'FakeManager', use_mock_anything=True) self.mox.StubOutWithMock(self.manager_mock, 'init_host') self.mox.StubOutWithMock(self.manager_mock, 'pre_start_hook') self.mox.StubOutWithMock(self.manager_mock, 'post_start_hook') FakeManager(host=self.host).AndReturn(self.manager_mock) # init_host is called before any service record is created self.manager_mock.init_host() db.service_get_by_host_and_binary(mox.IgnoreArg(), self.host, self.binary).AndRaise( exception.NotFound) db.service_create(mox.IgnoreArg(), mox.IgnoreArg()).AndRaise(ex) class TestException(Exception): pass db.service_get_by_host_and_binary(mox.IgnoreArg(), self.host, self.binary).AndRaise(TestException) self.mox.ReplayAll() serv = service.Service(self.host, self.binary, self.topic, 'patron.tests.unit.test_service.FakeManager') self.assertRaises(TestException, serv.start)
def test_service_stop_waits_for_rpcserver(self, mock_rpc, mock_svc_get_by_host_and_binary, mock_API): mock_svc_get_by_host_and_binary.return_value = {'id': 'some_value'} serv = service.Service(self.host, self.binary, self.topic, 'patron.tests.unit.test_service.FakeManager') serv.start() serv.stop() serv.rpcserver.start.assert_called_once_with() serv.rpcserver.stop.assert_called_once_with() serv.rpcserver.wait.assert_called_once_with()
def test_parent_graceful_shutdown_with_cleanup_host( self, mock_svc_get_by_host_and_binary, mock_API): mock_svc_get_by_host_and_binary.return_value = {'id': 'some_value'} mock_manager = mock.Mock() serv = service.Service(self.host, self.binary, self.topic, 'patron.tests.unit.test_service.FakeManager') serv.manager = mock_manager serv.manager.additional_endpoints = [] serv.start() serv.manager.init_host.assert_called_with() serv.stop() serv.manager.cleanup_host.assert_called_with()
def test_message_gets_to_manager(self): serv = service.Service('test', 'test', 'test', 'patron.tests.unit.test_service.FakeManager') serv.start() self.assertEqual(serv.test_method(), 'manager')