Spaces:
Running
Running
from unittest.mock import Mock, patch | |
from langflow.services.database.models.flow.model import Flow | |
def test_api_exception(): | |
from langflow.exceptions.api import APIException, ExceptionBody | |
mock_exception = Exception("Test exception") | |
mock_flow = Mock(spec=Flow) | |
mock_outdated_components = ["component1", "component2"] | |
mock_suggestion_message = "Update component1, component2" | |
mock_component_versions = { | |
"component1": "1.0", | |
"component2": "1.0", | |
} | |
# Expected result | |
with ( | |
patch( | |
"langflow.services.database.models.flow.utils.get_outdated_components", | |
return_value=mock_outdated_components, | |
), | |
patch("langflow.api.utils.get_suggestion_message", return_value=mock_suggestion_message), | |
patch( | |
"langflow.services.database.models.flow.utils.get_components_versions", | |
return_value=mock_component_versions, | |
), | |
): | |
# Create an APIException instance | |
api_exception = APIException(mock_exception, mock_flow) | |
# Expected body | |
expected_body = ExceptionBody( | |
message="Test exception", | |
suggestion="The flow contains 2 outdated components. " | |
"We recommend updating the following components: component1, component2.", | |
) | |
# Assert the status code | |
assert api_exception.status_code == 500 | |
# Assert the detail | |
assert api_exception.detail == expected_body.model_dump_json() | |
def test_api_exception_no_flow(): | |
from langflow.exceptions.api import APIException, ExceptionBody | |
# Mock data | |
mock_exception = Exception("Test exception") | |
# Create an APIException instance without a flow | |
api_exception = APIException(mock_exception) | |
# Expected body | |
expected_body = ExceptionBody(message="Test exception") | |
# Assert the status code | |
assert api_exception.status_code == 500 | |
# Assert the detail | |
assert api_exception.detail == expected_body.model_dump_json() | |