from typing import Any from unittest import mock from anydi import Container from app.handlers import SendgridEventHandler from app.main import handle def test_handle_delegates_to_handler( container: Container, test_request_success: dict[str, Any], ) -> None: """Test that handle resolves SendgridEventHandler and delegates to it.""" handler_mock = mock.MagicMock(spec=SendgridEventHandler) handler_mock.handle.return_value = {"statusCode": 200} with container.override(SendgridEventHandler, handler_mock): result = handle(test_request_success, None) handler_mock.handle.assert_called_once_with(test_request_success) assert result == {"statusCode": 200} def test_handle_propagates_handler_status_code( container: Container, test_request_success: dict[str, Any], ) -> None: """Test that the status code returned by the handler is propagated to the caller.""" handler_mock = mock.MagicMock(spec=SendgridEventHandler) handler_mock.handle.return_value = {"statusCode": 500} with container.override(SendgridEventHandler, handler_mock): result = handle(test_request_success, None) assert result == {"statusCode": 500}