Пример #1
0
    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')
Пример #2
0
    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')
Пример #3
0
    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]
Пример #4
0
 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
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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]