From 12a89fde5428a2a5dcac3341e42dbca94d17667b Mon Sep 17 00:00:00 2001 From: Marcelo Ariel Hamra Date: Wed, 3 Apr 2024 10:39:16 -0300 Subject: [PATCH] Fix to TESTING-README and github workflow --- .../workflows/workflow-engine-unit-tests.yml | 2 +- .../workflow_engine/tests/TESTING-README.md | 208 +++++++++--------- 2 files changed, 107 insertions(+), 103 deletions(-) diff --git a/.github/workflows/workflow-engine-unit-tests.yml b/.github/workflows/workflow-engine-unit-tests.yml index eef70e7254..bdeea0f185 100644 --- a/.github/workflows/workflow-engine-unit-tests.yml +++ b/.github/workflows/workflow-engine-unit-tests.yml @@ -5,7 +5,7 @@ on: pull_request: paths: - '.github/workflows/workflow-engine-unit-tests.yml' - - 'depoyability/modules/workflow_engine/**' + - 'deployability/modules/workflow_engine/**' jobs: build: diff --git a/deployability/modules/workflow_engine/tests/TESTING-README.md b/deployability/modules/workflow_engine/tests/TESTING-README.md index 95038b8432..625bf58af5 100644 --- a/deployability/modules/workflow_engine/tests/TESTING-README.md +++ b/deployability/modules/workflow_engine/tests/TESTING-README.md @@ -9,11 +9,15 @@ The workflow_engine module includes pytest unit tests. - Clone the wazuh-qa repository in your local environment. - Install the necessary dependencies by running: ```bash -git clone git@github.com:wazuh/wazuh-qa.git -b [your-branch] +git clone https://github.com/wazuh/wazuh-qa.git -b [your-branch] cd wazuh-qa pip install -r deployability/modules/workflow_engine/requirements-dev.txt ``` -- Configure the `PYTHONPATH` variable to include the directory `deployability/modules`. +- Configure the `PYTHONPATH` variable to include the directory `deployability/modules`, for example if you've cloned +the wazuh-qa repository to /wazuh/wazuh-qa, use this commando to configure the PYTHONPATH: +```bash +export PYTHONPATH=$PYTHONPATH:/wazuh/wazuh-qa/deployability/modules +``` ## Test Structure The directory `deployability/modules/workflow_engine/tests/` contains the unit test files for the @@ -28,110 +32,110 @@ pytest -vv deployability/modules/workflow_engine ``` This command will run all tests in the `tests/` directory. Using additional arguments, You can also run specific tests or directories. The output of this command looks like this: -``` +```bash pytest -vv deployability/modules/workflow_engine -=================================================================================== test session starts ==================================================================================== -platform linux -- Python 3.10.12, pytest-8.0.2, pluggy-1.4.0 -- /usr/bin/python3 +============================================================================================== test session starts ============================================================================================== +platform linux -- Python 3.10.13, pytest-7.1.2, pluggy-1.3.0 -- /usr/local/bin/python3 cachedir: .pytest_cache -rootdir: /wazuh-qa/deployability/modules -collected 94 items +metadata: {'Python': '3.10.13', 'Platform': 'Linux-5.15.146.1-microsoft-standard-WSL2-x86_64-with-glibc2.31', 'Packages': {'pytest': '7.1.2', 'pluggy': '1.3.0'}, 'Plugins': {'anyio': '4.2.0', 'testinfra': '5.0.0', 'metadata': '3.0.0', 'html': '3.1.1'}} +rootdir: /home/marcelo/wazuh/wazuh-qa/deployability/modules +plugins: anyio-4.2.0, testinfra-5.0.0, metadata-3.0.0, html-3.1.1 +collected 92 items -workflow_engine/tests/test_dag.py::test_dag_constructor[True]PASSED [ 1%] -workflow_engine/tests/test_dag.py::test_dag_constructor[False] PASSED [ 2%] -workflow_engine/tests/test_dag.py::test_dag_is_active[True-dag0] PASSED [ 3%] -workflow_engine/tests/test_dag.py::test_dag_is_active[True-dag1] PASSED [ 4%] -workflow_engine/tests/test_dag.py::test_dag_is_active[False-dag0] PASSED [ 5%] -workflow_engine/tests/test_dag.py::test_dag_is_active[False-dag1] PASSED [ 6%] -workflow_engine/tests/test_dag.py::test_get_execution_plan[dag0] PASSED [ 7%] -workflow_engine/tests/test_dag.py::test_set_status[task1-failed-dag0] PASSED [ 8%] -workflow_engine/tests/test_dag.py::test_set_status[task1-canceled-dag0] PASSED [ 9%] -workflow_engine/tests/test_dag.py::test_set_status[task1-successful-dag0] PASSED [ 10%] -workflow_engine/tests/test_dag.py::test_set_status[task1-non_existing_status-dag0] FAILED [ 11%] -workflow_engine/tests/test_dag.py::test_set_status[non_existing_task-successful-dag0] PASSED [ 12%] -workflow_engine/tests/test_dag.py::test_set_status[non_existing_task-non_existing_status-dag0] FAILED [ 13%] -workflow_engine/tests/test_dag.py::test_should_be_canceled[True-dag0] PASSED [ 14%] -workflow_engine/tests/test_dag.py::test_should_be_canceled[False-dag0] PASSED [ 15%] -workflow_engine/tests/test_dag.py::test_build_dag[dag0] PASSED [ 17%] -workflow_engine/tests/test_dag.py::test_build_dag[dag1] PASSED [ 18%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-abort-all-to_be_canceled0-dag0] PASSED [ 19%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-abort-all-to_be_canceled0-dag1] PASSED [ 20%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-abort-related-flows-to_be_canceled1-dag0] FAILED [ 21%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-abort-related-flows-to_be_canceled1-dag1] FAILED [ 22%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-continue-to_be_canceled2-dag0] FAILED [ 23%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-continue-to_be_canceled2-dag1] FAILED [ 24%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-abort-all-to_be_canceled3-dag0] FAILED [ 25%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-abort-all-to_be_canceled3-dag1] FAILED [ 26%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-abort-related-flows-to_be_canceled4-dag0] FAILED [ 27%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-abort-related-flows-to_be_canceled4-dag1] FAILED [ 28%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-continue-to_be_canceled5-dag0] FAILED [ 29%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-continue-to_be_canceled5-dag1] FAILED [ 30%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-abort-all-to_be_canceled6-dag0] PASSED [ 31%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-abort-all-to_be_canceled6-dag1] PASSED [ 32%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-abort-related-flows-to_be_canceled7-dag0] PASSED [ 34%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-abort-related-flows-to_be_canceled7-dag1] PASSED [ 35%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-continue-to_be_canceled8-dag0] FAILED [ 36%] -workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-continue-to_be_canceled8-dag1] FAILED [ 37%] -workflow_engine/tests/test_dag.py::test_create_execution_plan[dag0-exec_plan0] PASSED [ 38%] -workflow_engine/tests/test_dag.py::test_create_execution_plan[dag1-exec_plan1] PASSED [ 39%] -workflow_engine/tests/test_schema_validator.py::test_schema_validator_constructor[logger_mock0] PASSED [ 40%] -workflow_engine/tests/test_schema_validator.py::test_schema_validator_constructor_ko[logger_mock0] PASSED [ 41%] -workflow_engine/tests/test_schema_validator.py::test_preprocess_data PASSED [ 42%] -workflow_engine/tests/test_schema_validator.py::test_preprocess_data_ko[wf-ko-no-path-on-do.yaml-Missing required properties in 'with' for task: {'task': 'run-agent-tests-{agent}'] PASSED [ 43%] -workflow_engine/tests/test_schema_validator.py::test_preprocess_data_ko[wf-ko-no-path-on-cleanup.yaml-Missing required properties in 'with' for task: {'task': 'allocate-manager'] PASSED [ 44%] -workflow_engine/tests/test_schema_validator.py::test_validate_schema PASSED [ 45%] -workflow_engine/tests/test_schema_validator.py::test_validate_schema_ko[logger_mock0] PASSED [ 46%] -workflow_engine/tests/test_task.py::test_process_task_constructor[task0] PASSED [ 47%] -workflow_engine/tests/test_task.py::test_process_task_execute[task0] PASSED [ 48%] -workflow_engine/tests/test_task.py::test_process_task_execute[task1] PASSED [ 50%] -workflow_engine/tests/test_task.py::test_process_task_execute[task2] PASSED [ 51%] -workflow_engine/tests/test_task.py::test_process_task_execute[task3] PASSED [ 52%] -workflow_engine/tests/test_task.py::test_process_task_execute[task4] PASSED [ 53%] -workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc0-1-task0] FAILED [ 54%] -workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc0-0-task0] FAILED [ 55%] -workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc1-1-task0] PASSED [ 56%] -workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc1-0-task0] PASSED [ 57%] -workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc2-1-task0] PASSED [ 58%] -workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc2-0-task0] PASSED [ 59%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_constructor PASSED [ 60%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_validate_schema ERROR [ 61%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_validate_schema_ko[logger_mock0] PASSED [ 62%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_load_workflow[logger_mock0] PASSED [ 63%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_load_workflow_ko[logger_mock0] PASSED [ 64%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_process_workflow[logger_mock0] PASSED [ 65%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_process_workflow_ok[logger_mock0] PASSED [ 67%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_replace_placeholder[element0-values0-return_value0] PASSED [ 68%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_replace_placeholder[element1-values1-return_value1] PASSED [ 69%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_replace_placeholder[string_element {value}-values2-string_element value] PASSED [ 70%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_replace_placeholder[element3-None-return_value3] PASSED [ 71%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_expand_task[task0-return_value0-variables0] PASSED [ 72%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_expand_task[task1-return_value1-variables1] PASSED [ 73%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_static_workflow_validation PASSED [ 74%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_static_workflow_validation_ko[task_collection0-Duplicated task names: task 1] PASSED [ 75%] -workflow_engine/tests/test_workflow_file.py::test_workflow_file_static_workflow_validation_ko[task_collection1-Tasks do not exist: task 3, task 4] PASSED [ 76%] -workflow_engine/tests/test_workflow_processor.py::test_workflow_processor_constructor[workflow.yaml-False-1-info-schema.yaml] PASSED [ 77%] -workflow_engine/tests/test_workflow_processor.py::test_workflow_processor_constructor[workflow.yaml-True-1-debug-schema.yaml] PASSED [ 78%] -workflow_engine/tests/test_workflow_processor.py::test_workflow_processor_constructor[workflow.yaml-True-1-debug-None] PASSED [ 79%] -workflow_engine/tests/test_workflow_processor.py::test_execute_task[logger_mock0-w_processor0-dag0-custom_action-True] PASSED [ 80%] -workflow_engine/tests/test_workflow_processor.py::test_execute_task[logger_mock1-w_processor1-dag1-custom_action-False] PASSED [ 81%] -workflow_engine/tests/test_workflow_processor.py::test_execute_task_ko[logger_mock0-w_processor0-dag0-KeyboardInterrupt-None] PASSED [ 82%] -workflow_engine/tests/test_workflow_processor.py::test_execute_task_ko[logger_mock0-w_processor0-dag0-KeyboardInterrupt-abort-all] PASSED [ 84%] -workflow_engine/tests/test_workflow_processor.py::test_execute_task_ko[logger_mock1-w_processor1-dag1-Exception-None] PASSED [ 85%] -workflow_engine/tests/test_workflow_processor.py::test_execute_task_ko[logger_mock1-w_processor1-dag1-Exception-abort-all] PASSED [ 86%] -workflow_engine/tests/test_workflow_processor.py::test_create_task_object[w_processor0-process] PASSED [ 87%] -workflow_engine/tests/test_workflow_processor.py::test_create_task_object[w_processor0-dummy] PASSED [ 88%] -workflow_engine/tests/test_workflow_processor.py::test_create_task_object[w_processor0-dummy-random] PASSED [ 89%] -workflow_engine/tests/test_workflow_processor.py::test_create_task_object_ko[w_processor0] PASSED [ 90%] -workflow_engine/tests/test_workflow_processor.py::test_execute_tasks_parallel[logger_mock0-w_processor0-dag0-False] PASSED [ 91%] -workflow_engine/tests/test_workflow_processor.py::test_execute_tasks_parallel[logger_mock0-w_processor0-dag0-True] PASSED [ 92%] -workflow_engine/tests/test_workflow_processor.py::test_execute_tasks_parallel_ko[logger_mock0-w_processor0-dag0-False] PASSED [ 93%] -workflow_engine/tests/test_workflow_processor.py::test_execute_tasks_parallel_ko[logger_mock0-w_processor0-dag0-True] PASSED [ 94%] -workflow_engine/tests/test_workflow_processor.py::test_generate_futures[w_processor0] PASSED [ 95%] -workflow_engine/tests/test_workflow_processor.py::test_generate_futures_reverse[w_processor0] PASSED [ 96%] -workflow_engine/tests/test_workflow_processor.py::test_run[logger_mock0-w_processor0-False] PASSED [ 97%] -workflow_engine/tests/test_workflow_processor.py::test_run[logger_mock0-w_processor0-True] PASSED [ 98%] -workflow_engine/tests/test_workflow_processor.py::test_handle_interrupt[logger_mock0-w_processor0] PASSED [100%] +deployability/modules/workflow_engine/tests/test_dag.py::test_dag_constructor[True] PASSED [ 1%] +deployability/modules/workflow_engine/tests/test_dag.py::test_dag_constructor[False] PASSED [ 2%] +deployability/modules/workflow_engine/tests/test_dag.py::test_dag_is_active[True-dag0] PASSED [ 3%] +deployability/modules/workflow_engine/tests/test_dag.py::test_dag_is_active[True-dag1] PASSED [ 4%] +deployability/modules/workflow_engine/tests/test_dag.py::test_dag_is_active[False-dag0] PASSED [ 5%] +deployability/modules/workflow_engine/tests/test_dag.py::test_dag_is_active[False-dag1] PASSED [ 6%] +deployability/modules/workflow_engine/tests/test_dag.py::test_get_execution_plan[dag0] PASSED [ 7%] +deployability/modules/workflow_engine/tests/test_dag.py::test_set_status[task1-failed-dag0] PASSED [ 8%] +deployability/modules/workflow_engine/tests/test_dag.py::test_set_status[task1-canceled-dag0] PASSED [ 9%] +deployability/modules/workflow_engine/tests/test_dag.py::test_set_status[task1-successful-dag0] PASSED [ 10%] +deployability/modules/workflow_engine/tests/test_dag.py::test_set_status[task1-non_existing_status-dag0] FAILED [ 11%] +deployability/modules/workflow_engine/tests/test_dag.py::test_set_status[non_existing_task-successful-dag0] PASSED [ 13%] +deployability/modules/workflow_engine/tests/test_dag.py::test_set_status[non_existing_task-non_existing_status-dag0] FAILED [ 14%] +deployability/modules/workflow_engine/tests/test_dag.py::test_should_be_canceled[True-dag0] PASSED [ 15%] +deployability/modules/workflow_engine/tests/test_dag.py::test_should_be_canceled[False-dag0] PASSED [ 16%] +deployability/modules/workflow_engine/tests/test_dag.py::test_build_dag[dag0] PASSED [ 17%] +deployability/modules/workflow_engine/tests/test_dag.py::test_build_dag[dag1] PASSED [ 18%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-abort-all-to_be_canceled0-dag0] PASSED [ 19%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-abort-all-to_be_canceled0-dag1] PASSED [ 20%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-abort-related-flows-to_be_canceled1-dag0] FAILED [ 21%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-abort-related-flows-to_be_canceled1-dag1] FAILED [ 22%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-continue-to_be_canceled2-dag0] FAILED [ 23%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task1-continue-to_be_canceled2-dag1] FAILED [ 25%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-abort-all-to_be_canceled3-dag0] FAILED [ 26%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-abort-all-to_be_canceled3-dag1] FAILED [ 27%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-abort-related-flows-to_be_canceled4-dag0] FAILED [ 28%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-abort-related-flows-to_be_canceled4-dag1] FAILED [ 29%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-continue-to_be_canceled5-dag0] FAILED [ 30%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task2-continue-to_be_canceled5-dag1] FAILED [ 31%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-abort-all-to_be_canceled6-dag0] PASSED [ 32%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-abort-all-to_be_canceled6-dag1] PASSED [ 33%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-abort-related-flows-to_be_canceled7-dag0] PASSED [ 34%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-abort-related-flows-to_be_canceled7-dag1] PASSED [ 35%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-continue-to_be_canceled8-dag0] FAILED [ 36%] +deployability/modules/workflow_engine/tests/test_dag.py::test_cancel_dependant_tasks[task5-continue-to_be_canceled8-dag1] FAILED [ 38%] +deployability/modules/workflow_engine/tests/test_dag.py::test_create_execution_plan[dag0-exec_plan0] PASSED [ 39%] +deployability/modules/workflow_engine/tests/test_dag.py::test_create_execution_plan[dag1-exec_plan1] PASSED [ 40%] +deployability/modules/workflow_engine/tests/test_schema_validator.py::test_schema_validator_constructor[logger_mock0] PASSED [ 41%] +deployability/modules/workflow_engine/tests/test_schema_validator.py::test_schema_validator_constructor_ko PASSED [ 42%] +deployability/modules/workflow_engine/tests/test_schema_validator.py::test_preprocess_data PASSED [ 43%] +deployability/modules/workflow_engine/tests/test_schema_validator.py::test_preprocess_data_ko[wf-ko-no-path-on-do.yaml-Missing required properties in 'with' for task: {'task': 'run-agent-tests-{agent}'] PASSED [ 44%] +deployability/modules/workflow_engine/tests/test_schema_validator.py::test_preprocess_data_ko[wf-ko-no-path-on-cleanup.yaml-Missing required properties in 'with' for task: {'task': 'allocate-manager'] PASSED [ 45%] +deployability/modules/workflow_engine/tests/test_schema_validator.py::test_validate_schema PASSED [ 46%] +deployability/modules/workflow_engine/tests/test_schema_validator.py::test_validate_schema_ko[logger_mock0] PASSED [ 47%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_constructor[task0] PASSED [ 48%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_execute[task0] PASSED [ 50%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_execute[task1] PASSED [ 51%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_execute[task2] PASSED [ 52%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_execute[task3] PASSED [ 53%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_execute[task4] PASSED [ 54%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc0-1-task0] PASSED [ 55%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc0-0-task0] PASSED [ 56%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc1-1-task0] PASSED [ 57%] +deployability/modules/workflow_engine/tests/test_task.py::test_process_task_execute_ko[subproc_run_exc1-0-task0] PASSED [ 58%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_constructor PASSED [ 59%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_validate_schema[logger_mock0] PASSED [ 60%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_validate_schema_ko[logger_mock0] PASSED [ 61%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_load_workflow[logger_mock0] PASSED [ 63%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_load_workflow_ko[logger_mock0] PASSED [ 64%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_process_workflow[logger_mock0] PASSED [ 65%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_process_workflow_ok[logger_mock0] PASSED [ 66%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_replace_placeholder[element0-values0-return_value0] PASSED [ 67%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_replace_placeholder[element1-values1-return_value1] PASSED [ 68%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_replace_placeholder[string_element {value}-values2-string_element value] PASSED [ 69%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_replace_placeholder[element3-None-return_value3] PASSED [ 70%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_expand_task[task0-return_value0-variables0] PASSED [ 71%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_expand_task[task1-return_value1-variables1] PASSED [ 72%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_static_workflow_validation PASSED [ 73%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_static_workflow_validation_ko[task_collection0-Duplicated task names: task 1] PASSED [ 75%] +deployability/modules/workflow_engine/tests/test_workflow_file.py::test_workflow_file_static_workflow_validation_ko[task_collection1-Tasks do not exist: task 3, task 4] PASSED [ 76%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_workflow_processor_constructor[workflow.yaml-False-1-info-schema.yaml] PASSED [ 77%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_workflow_processor_constructor[workflow.yaml-True-1-debug-schema.yaml] PASSED [ 78%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_workflow_processor_constructor[workflow.yaml-True-1-debug-None] PASSED [ 79%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_task[logger_mock0-w_processor0-dag0-custom_action-True] PASSED [ 80%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_task[logger_mock1-w_processor1-dag1-custom_action-False] PASSED [ 81%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_task_ko[logger_mock0-w_processor0-dag0-KeyboardInterrupt-None] PASSED [ 82%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_task_ko[logger_mock0-w_processor0-dag0-KeyboardInterrupt-abort-all] PASSED [ 83%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_task_ko[logger_mock1-w_processor1-dag1-Exception-None] PASSED [ 84%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_task_ko[logger_mock1-w_processor1-dag1-Exception-abort-all] PASSED [ 85%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_create_task_object[w_processor0-process] PASSED [ 86%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_create_task_object[w_processor0-dummy] PASSED [ 88%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_create_task_object[w_processor0-dummy-random] PASSED [ 89%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_create_task_object_ko[w_processor0] PASSED [ 90%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_tasks_parallel[logger_mock0-w_processor0-dag0-False] PASSED [ 91%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_tasks_parallel[logger_mock0-w_processor0-dag0-True] PASSED [ 92%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_tasks_parallel_ko[logger_mock0-w_processor0-dag0-False] PASSED [ 93%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_execute_tasks_parallel_ko[logger_mock0-w_processor0-dag0-True] PASSED [ 94%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_generate_futures[w_processor0] PASSED [ 95%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_generate_futures_reverse[w_processor0] PASSED [ 96%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_run[logger_mock0-w_processor0-False] PASSED [ 97%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_run[logger_mock0-w_processor0-True] PASSED [ 98%] +deployability/modules/workflow_engine/tests/test_workflow_processor.py::test_handle_interrupt[logger_mock0-w_processor0] PASSED [100%] -========================================================================================== ERRORS =============== +=================================================================================================== FAILURES ==================================================================================================== ``` The `.github/workflow/workflow-engine-unit-tests.yaml` automatically runs the unit tests in the GitHub environment.