2022-05-23 17:23:13 -04:00
|
|
|
"""User."""
|
2022-06-12 07:39:30 -04:00
|
|
|
from typing import Optional
|
2022-05-25 16:38:03 -04:00
|
|
|
|
2022-07-19 16:57:58 -04:00
|
|
|
from tests.spiffworkflow_backend.helpers.example_data import ExampleDataLoader
|
|
|
|
|
2022-06-22 21:59:01 -04:00
|
|
|
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
|
|
|
|
ProcessEntityNotFoundError,
|
2022-06-22 21:46:40 -04:00
|
|
|
)
|
2022-06-01 11:17:25 -04:00
|
|
|
from spiffworkflow_backend.models.process_group import ProcessGroup
|
2022-06-12 07:39:30 -04:00
|
|
|
from spiffworkflow_backend.models.process_model import ProcessModelInfo
|
2022-06-01 11:17:25 -04:00
|
|
|
from spiffworkflow_backend.services.process_model_service import ProcessModelService
|
2022-05-25 16:38:03 -04:00
|
|
|
|
|
|
|
|
2022-06-12 07:39:30 -04:00
|
|
|
def assure_process_group_exists(process_group_id: Optional[str] = None) -> ProcessGroup:
|
2022-05-25 16:38:03 -04:00
|
|
|
"""Assure_process_group_exists."""
|
|
|
|
process_group = None
|
2022-08-30 12:19:45 -04:00
|
|
|
process_model_service = ProcessModelService()
|
2022-05-25 16:38:03 -04:00
|
|
|
if process_group_id is not None:
|
2022-06-24 17:13:50 -04:00
|
|
|
try:
|
2022-08-30 12:19:45 -04:00
|
|
|
process_group = process_model_service.get_process_group(process_group_id)
|
2022-06-24 17:13:50 -04:00
|
|
|
except ProcessEntityNotFoundError:
|
|
|
|
process_group = None
|
|
|
|
|
2022-05-23 17:23:13 -04:00
|
|
|
if process_group is None:
|
2022-06-03 12:18:41 -04:00
|
|
|
process_group_id_to_create = "test_process_group"
|
|
|
|
if process_group_id is not None:
|
|
|
|
process_group_id_to_create = process_group_id
|
2022-05-31 14:10:00 -04:00
|
|
|
process_group = ProcessGroup(
|
2022-06-03 12:18:41 -04:00
|
|
|
id=process_group_id_to_create,
|
2022-05-31 14:10:00 -04:00
|
|
|
display_name="Test Workflows",
|
|
|
|
admin=False,
|
|
|
|
display_order=0,
|
|
|
|
)
|
2022-08-30 12:19:45 -04:00
|
|
|
process_model_service.add_process_group(process_group)
|
2022-05-23 17:23:13 -04:00
|
|
|
return process_group
|
2022-05-25 16:38:03 -04:00
|
|
|
|
|
|
|
|
2022-05-31 14:10:00 -04:00
|
|
|
def load_test_spec(
|
2022-06-21 17:08:36 -04:00
|
|
|
process_model_id: str,
|
2022-08-30 12:19:45 -04:00
|
|
|
bpmn_file_name: Optional[str] = None,
|
2022-11-09 13:45:16 -05:00
|
|
|
process_model_source_directory: Optional[str] = None,
|
2022-06-10 18:27:06 -04:00
|
|
|
) -> ProcessModelInfo:
|
2022-11-01 16:48:04 -04:00
|
|
|
"""Loads a bpmn file into the process model dir based on a directory in tests/data."""
|
|
|
|
if process_model_source_directory is None:
|
|
|
|
raise Exception("You must inclode a `process_model_source_directory`.")
|
|
|
|
|
|
|
|
spec = ExampleDataLoader.create_spec(
|
|
|
|
process_model_id=process_model_id,
|
|
|
|
display_name=process_model_id,
|
|
|
|
bpmn_file_name=bpmn_file_name,
|
|
|
|
process_model_source_directory=process_model_source_directory,
|
|
|
|
)
|
|
|
|
return spec
|