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_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 _service_start_mocks(self): service_create = {'host': self.host, 'binary': self.binary, 'topic': self.topic, 'report_count': 0} service_ref = {'host': self.host, 'binary': self.binary, 'topic': self.topic, 'report_count': 0, 'id': 1} db.service_get_by_host_and_binary(mox.IgnoreArg(), self.host, self.binary).AndRaise(exception.NotFound()) db.service_create(mox.IgnoreArg(), service_create).AndReturn(service_ref) return service_ref
def get_by_host_and_binary(cls, context, host, binary): try: db_service = db.service_get_by_host_and_binary( context, host, binary) except exception.HostBinaryNotFound: return return cls._from_db_object(context, cls(), db_service)
def get_by_host_and_binary(cls, context, host, binary): try: db_service = db.service_get_by_host_and_binary(context, host, binary) except exception.HostBinaryNotFound: return return cls._from_db_object(context, cls(), db_service)
def _service_start_mocks(self): service_create = { 'host': self.host, 'binary': self.binary, 'topic': self.topic, 'report_count': 0 } service_ref = { 'host': self.host, 'binary': self.binary, 'topic': self.topic, 'report_count': 0, 'id': 1 } db.service_get_by_host_and_binary(mox.IgnoreArg(), self.host, self.binary).AndRaise( exception.NotFound()) db.service_create(mox.IgnoreArg(), service_create).AndReturn(service_ref) return service_ref
def get_by_args(cls, context, host, binary): db_service = db.service_get_by_host_and_binary(context, host, binary) return cls._from_db_object(context, cls(), db_service)