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() | |