async def test_single_value_func(self, single_value_task_config: TaskConfig, mocked_job_with_adapter: Job): task = task_builder.build_task(lambda: 1, single_value_task_config) job = await task.job_handler(mocked_job_with_adapter) assert job.variables.pop("y") == 1
async def test_no_additional_variables_are_added_to_result(self, single_value_task_config: TaskConfig, mocked_job_with_adapter: Job): mocked_job_with_adapter.variables = {"x": 1} task = task_builder.build_task(lambda x: x, single_value_task_config) job = await task.job_handler(mocked_job_with_adapter) assert len(job.variables.keys()) == 1 assert set(job.variables.keys()) == {"y"}
async def test_job_parameter_is_injected_in_task(self, task_config: TaskConfig, mocked_job_with_adapter: Job): def function_with_job_parameter(job: Job): return {"job": job} task = task_builder.build_task( function_with_job_parameter, task_config) job = await task.job_handler(mocked_job_with_adapter) assert job.variables["job"] == mocked_job_with_adapter
def random_job(task: Task = task_builder.build_task( lambda x: {"x": x}, TaskConfig("test", lambda: None, 10000, 32, 32, [], False, "", [], [])), zeebe_adapter: ZeebeAdapter = None) -> Job: return Job(_type=task.type, key=randint(0, RANDOM_RANGE), worker=str(uuid4()), retries=randint(0, 10), process_instance_key=randint(0, RANDOM_RANGE), bpmn_process_id=str(uuid4()), process_definition_version=randint(0, 100), process_definition_key=randint(0, RANDOM_RANGE), element_id=str(uuid4()), element_instance_key=randint(0, RANDOM_RANGE), variables={}, custom_headers={}, deadline=randint(0, RANDOM_RANGE), zeebe_adapter=zeebe_adapter)
def task_wrapper(task_function: Callable): config = TaskConfig( task_type, exception_handler, timeout_ms, max_jobs_to_activate, max_running_jobs, variables_to_fetch or parameter_tools.get_parameters_from_function(task_function), single_value, variable_name or "", before or [], after or [], ) config_with_decorators = self._add_decorators_to_config(config) task = task_builder.build_task(task_function, config_with_decorators) self._add_task(task) return task_function
def test_returns_task(self, original_task_function: Callable, task_config: TaskConfig): task = task_builder.build_task(original_task_function, task_config) assert isinstance(task, Task)
def task(original_task_function, task_config): return task_builder.build_task(original_task_function, task_config)