return a 400 if a process group cannot be found instead of a 500

This commit is contained in:
jasquat 2022-07-18 16:23:29 -04:00
parent 989dc22f74
commit d7fdb618fc
9 changed files with 37 additions and 31 deletions

View File

@ -1070,9 +1070,7 @@
"test_resource_att1": ["this_is_the_value"]
},
"_id": "e294304c-796e-4c56-bdf2-8c854f65db59",
"uris": [
"/blog/post/1"
],
"uris": ["/blog/post/1"],
"scopes": [
{
"name": "read"

View File

@ -1,12 +1,12 @@
"""Conftest."""
import os
import shutil
from tests.spiffworkflow_backend.helpers.test_data import load_test_spec
import pytest
from flask.app import Flask
from flask_bpmn.models.db import db
from flask_bpmn.models.db import SpiffworkflowBaseDBModel
from tests.spiffworkflow_backend.helpers.test_data import load_test_spec
from spiffworkflow_backend.helpers.fixture_data import find_or_create_user
from spiffworkflow_backend.models.process_instance import ProcessInstanceModel

View File

@ -2,6 +2,8 @@
from __future__ import annotations
from dataclasses import dataclass
from SpiffWorkflow.navigation import NavItem # type: ignore
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
from typing import Any
from typing import cast
@ -11,8 +13,6 @@ from flask_bpmn.models.db import SpiffworkflowBaseDBModel
from marshmallow import INCLUDE
from marshmallow import Schema
from marshmallow_enum import EnumField # type: ignore
from SpiffWorkflow.navigation import NavItem # type: ignore
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
from sqlalchemy import ForeignKey
from sqlalchemy.orm import deferred
from sqlalchemy.orm import relationship

View File

@ -1,6 +1,7 @@
"""APIs for dealing with process groups, process models, and process instances."""
import json
import uuid
from SpiffWorkflow import TaskState # type: ignore
from typing import Any
from typing import Dict
from typing import Optional
@ -16,7 +17,6 @@ from flask import request
from flask.wrappers import Response
from flask_bpmn.api.api_error import ApiError
from flask_bpmn.models.db import db
from SpiffWorkflow import TaskState # type: ignore
from sqlalchemy import desc
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
@ -112,7 +112,16 @@ def process_group_show(
process_group_id: str,
) -> Any:
"""Process_group_show."""
process_group = ProcessModelService().get_process_group(process_group_id)
try:
process_group = ProcessModelService().get_process_group(process_group_id)
except ProcessEntityNotFoundError as exception:
raise (
ApiError(
code="process_group_cannot_be_found",
message=f"Process group cannot be found: {process_group_id}",
status_code=400,
)
) from exception
return ProcessGroupSchema().dump(process_group)

View File

@ -1,16 +1,6 @@
"""Process_instance_processor."""
import json
import time
from typing import Any
from typing import Dict
from typing import List
from typing import Optional
from typing import Union
from flask import current_app
from flask_bpmn.api.api_error import ApiError
from flask_bpmn.models.db import db
from lxml import etree # type: ignore
from SpiffWorkflow import Task as SpiffTask # type: ignore
from SpiffWorkflow import TaskState
from SpiffWorkflow import WorkflowException
@ -31,6 +21,16 @@ from SpiffWorkflow.specs import WorkflowSpec # type: ignore
from SpiffWorkflow.spiff.parser.process import SpiffBpmnParser # type: ignore
from SpiffWorkflow.spiff.serializer import UserTaskConverter # type: ignore
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
from typing import Any
from typing import Dict
from typing import List
from typing import Optional
from typing import Union
from flask import current_app
from flask_bpmn.api.api_error import ApiError
from flask_bpmn.models.db import db
from lxml import etree # type: ignore
from spiffworkflow_backend.models.active_task import ActiveTaskModel
from spiffworkflow_backend.models.file import File

View File

@ -1,13 +1,5 @@
"""Process_instance_service."""
import time
from typing import Any
from typing import Dict
from typing import List
from typing import Optional
from flask import current_app
from flask_bpmn.api.api_error import ApiError
from flask_bpmn.models.db import db
from SpiffWorkflow.bpmn.specs.events import EndEvent # type: ignore
from SpiffWorkflow.bpmn.specs.events import StartEvent
from SpiffWorkflow.bpmn.specs.ManualTask import ManualTask # type: ignore
@ -19,6 +11,14 @@ from SpiffWorkflow.specs import CancelTask # type: ignore
from SpiffWorkflow.specs import StartTask
from SpiffWorkflow.task import Task as SpiffTask # type: ignore
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
from typing import Any
from typing import Dict
from typing import List
from typing import Optional
from flask import current_app
from flask_bpmn.api.api_error import ApiError
from flask_bpmn.models.db import db
from spiffworkflow_backend.models.process_instance import ProcessInstanceApi
from spiffworkflow_backend.models.process_instance import ProcessInstanceModel

View File

@ -2,6 +2,7 @@
import os
import shutil
from datetime import datetime
from SpiffWorkflow.bpmn.parser.ValidationException import ValidationException # type: ignore
from typing import List
from typing import Optional
from typing import Union
@ -10,7 +11,6 @@ from flask_bpmn.api.api_error import ApiError
from lxml import etree # type: ignore
from lxml.etree import _Element # type: ignore
from lxml.etree import Element as EtreeElement
from SpiffWorkflow.bpmn.parser.ValidationException import ValidationException # type: ignore
from spiffworkflow_backend.models.file import File
from spiffworkflow_backend.models.file import FileType

View File

@ -1,9 +1,8 @@
"""User."""
from tests.spiffworkflow_backend.helpers.example_data import ExampleDataLoader
from typing import Dict
from typing import Optional
from tests.spiffworkflow_backend.helpers.example_data import ExampleDataLoader
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
ProcessEntityNotFoundError,
)

View File

@ -2,6 +2,8 @@
import io
import json
import time
from tests.spiffworkflow_backend.helpers.test_data import load_test_spec
from tests.spiffworkflow_backend.helpers.test_data import logged_in_headers
from typing import Any
from typing import Dict
from typing import Optional
@ -10,8 +12,6 @@ import pytest
from flask.app import Flask
from flask.testing import FlaskClient
from flask_bpmn.models.db import db
from tests.spiffworkflow_backend.helpers.test_data import load_test_spec
from tests.spiffworkflow_backend.helpers.test_data import logged_in_headers
from werkzeug.test import TestResponse
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (