Github user aviyoop commented on a diff in the pull request: https://github.com/apache/incubator-ariatosca/pull/208#discussion_r152281650 --- Diff: tests/orchestrator/execution/test_execution_compiler.py --- @@ -296,171 +230,161 @@ def _setup_mock_workflow_in_service(request, inputs=None): return mock_workflow_name -def _create_workflow_runner(request, workflow_name, inputs=None, executor=None, - task_max_attempts=None, task_retry_interval=None): +def _get_compiler(request, workflow_name): # helper method for instantiating a workflow runner - service_id = request.getfixturevalue('service').id + service = request.getfixturevalue('service') model = request.getfixturevalue('model') resource = request.getfixturevalue('resource') plugin_manager = request.getfixturevalue('plugin_manager') - # task configuration parameters can't be set to None, therefore only - # passing those if they've been set by the test - task_configuration_kwargs = dict() - if task_max_attempts is not None: - task_configuration_kwargs['task_max_attempts'] = task_max_attempts - if task_retry_interval is not None: - task_configuration_kwargs['task_retry_interval'] = task_retry_interval - - return WorkflowRunner( - workflow_name=workflow_name, - service_id=service_id, - inputs=inputs or {}, - executor=executor, - model_storage=model, - resource_storage=resource, - plugin_manager=plugin_manager, - **task_configuration_kwargs) + return execution_compiler.ExecutionCompiler( + model, + resource, + plugin_manager, + service, + workflow_name + ) class TestResumableWorkflows(object): - def _create_initial_workflow_runner( - self, workflow_context, workflow, executor, inputs=None): + def _compile_execution( + self, + model, + resource, + service, + workflow, + executor, + inputs=None): - service = workflow_context.service service.workflows['custom_workflow'] = tests_mock.models.create_operation( 'custom_workflow', operation_kwargs={ 'function': '{0}.{1}'.format(__name__, workflow.__name__), 'inputs': dict((k, models.Input.wrap(k, v)) for k, v in (inputs or {}).items()) } ) - workflow_context.model.service.update(service) - - wf_runner = WorkflowRunner( - service_id=workflow_context.service.id, - inputs=inputs or {}, - model_storage=workflow_context.model, - resource_storage=workflow_context.resource, - plugin_manager=None, - workflow_name='custom_workflow', - executor=executor) - return wf_runner + model.service.update(service) + compiler = execution_compiler.ExecutionCompiler( + model, resource, None, service, 'custom_workflow' + ) + ctx = compiler.compile(inputs, executor) + model.execution.update(ctx.execution) + + return ctx @staticmethod - def _wait_for_active_and_cancel(workflow_runner): + def _wait_for_active_and_cancel(eng, ctx): --- End diff -- `wait_for_execution_to_be_active_and_cancel_it` or `cancel_active_execution`. The former is a lot better of course!
---