"""Test error handlers common.""" from typing import Any from unittest.mock import MagicMock from httpx import HTTPStatusError import pytest from src.error_handlers import common def get_http_status_error( status_code: int, data: dict[str, Any] | None = None ) -> HTTPStatusError: mock_response = MagicMock() mock_response.status_code = status_code if data: mock_response.json.return_value = data else: mock_response.json.side_effect = ValueError('Abc') return HTTPStatusError( 'Message1', request=None, # type: ignore response=mock_response, ) @pytest.mark.parametrize( 'error,expected_result', ( (ValueError('Test'), (None, None)), (get_http_status_error(404), (404, None)), (get_http_status_error(400, {'c': 'd'}), (400, {'c': 'd'})), ), ) def test_get_error_details( error: Exception, expected_result: tuple[int | None, dict[str, Any] | None] ) -> None: """Test get_error_details.""" assert common.get_error_details(error) == expected_result