def setUp(self): super(TestServer, self).setUp() self.server_topic = 'server-topic' self.server_exchange = 'server-exchange' self.broker_url = 'test-url' self.task = utils.TaskOneArgOneReturn() self.task_uuid = 'task-uuid' self.task_args = {'x': 1} self.task_action = 'execute' self.reply_to = 'reply-to' self.endpoints = [ ep.Endpoint(task_cls=utils.TaskOneArgOneReturn), ep.Endpoint(task_cls=utils.TaskWithFailure), ep.Endpoint(task_cls=utils.ProgressingTask) ] # patch classes self.proxy_mock, self.proxy_inst_mock = self.patchClass( server.proxy, 'Proxy') self.response_mock, self.response_inst_mock = self.patchClass( server.pr, 'Response') # other mocking self.proxy_inst_mock.is_running = True self.executor_mock = mock.MagicMock(name='executor') self.message_mock = mock.MagicMock(name='message') self.message_mock.properties = { 'correlation_id': self.task_uuid, 'reply_to': self.reply_to, 'type': pr.REQUEST } self.master_mock.attach_mock(self.executor_mock, 'executor') self.master_mock.attach_mock(self.message_mock, 'message')
def setUp(self): super(TestServer, self).setUp() self.server_uuid = 'server-uuid' self.server_exchange = 'server-exchange' self.broker_url = 'test-url' self.task_uuid = 'task-uuid' self.task_args = {'x': 1} self.task_action = 'execute' self.task_name = 'taskflow.tests.utils.TaskOneArgOneReturn' self.task_version = (1, 0) self.reply_to = 'reply-to' self.endpoints = [ ep.Endpoint(task_cls=utils.TaskOneArgOneReturn), ep.Endpoint(task_cls=utils.TaskWithFailure), ep.Endpoint(task_cls=utils.ProgressingTask) ] self.resp_running = dict(state=pr.RUNNING) # patch classes self.proxy_mock, self.proxy_inst_mock = self._patch_class( server.proxy, 'Proxy') # other mocking self.proxy_inst_mock.is_running = True self.executor_mock = mock.MagicMock(name='executor') self.message_mock = mock.MagicMock(name='message') self.message_mock.properties = { 'correlation_id': self.task_uuid, 'reply_to': self.reply_to } self.master_mock.attach_mock(self.executor_mock, 'executor') self.master_mock.attach_mock(self.message_mock, 'message')
def _derive_endpoints(tasks): """Derive endpoints from list of strings, classes or packages.""" derived_tasks = set() for item in tasks: module = None if isinstance(item, six.string_types): try: pkg, cls = item.split(':') except ValueError: module = importutils.import_module(item) else: obj = importutils.import_class('%s.%s' % (pkg, cls)) if not reflection.is_subclass(obj, t_task.BaseTask): raise TypeError("Item %s is not a BaseTask subclass" % item) derived_tasks.add(obj) elif isinstance(item, types.ModuleType): module = item elif reflection.is_subclass(item, t_task.BaseTask): derived_tasks.add(item) else: raise TypeError("Item %s unexpected type: %s" % (item, type(item))) # derive tasks if module is not None: for name, obj in inspect.getmembers(module): if reflection.is_subclass(obj, t_task.BaseTask): derived_tasks.add(obj) return [endpoint.Endpoint(task) for task in derived_tasks]
def setUp(self): super(TestEndpoint, self).setUp() self.task_cls = utils.TaskOneReturn self.task_uuid = 'task-uuid' self.task_args = {'context': 'context'} self.task_cls_name = reflection.get_class_name(self.task_cls) self.task_ep = ep.Endpoint(self.task_cls) self.task_result = 1
def _fetch_server(self, task_classes): endpoints = [] for cls in task_classes: endpoints.append(endpoint.Endpoint(cls)) server = worker_server.Server(TEST_TOPIC, TEST_EXCHANGE, futures.ThreadPoolExecutor(1), endpoints, transport='memory', transport_options={ 'polling_interval': POLLING_INTERVAL, }) server_thread = threading_utils.daemon_thread(server.start) return (server, server_thread)
def test_creation_task_with_constructor_args(self): # NOTE(skudriashev): Exception is expected here since task # is created without any arguments passing to its constructor. endpoint = ep.Endpoint(Task) self.assertRaises(TypeError, endpoint.generate)
def _derive_endpoints(tasks): """Derive endpoints from list of strings, classes or packages.""" derived_tasks = misc.find_subclasses(tasks, t_task.BaseTask) return [endpoint.Endpoint(task) for task in derived_tasks]