Tai Truong
fix readme
d202ada
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()