"""Test response module.""" from unittest.mock import Mock from cache_manager import response def test_default_valid_reponse(): """Test Response constructor with default.""" test_response = response.Response() assert bool(test_response) assert test_response.message is None assert test_response.error is None assert test_response.status is response.OK def test_error_reponse(): """Test Response with error.""" test_response = response.Response(error=Exception('blah')) assert bool(test_response) is False assert test_response.message is None assert test_response.error assert test_response.status is response.ERROR def test_create_error_response_from_message(): """Test creating a error response from an error message.""" error_message = 'Uh oh' test_response = response.create_error_response(error_message) assert not bool(test_response) assert test_response.message == error_message assert type(test_response.error) is Exception assert str(test_response.error) == error_message assert test_response.status is response.ERROR def test_create_error_response_from_error(): """Test creating a error response from an error object.""" error = Exception('Uh oh') test_response = response.create_error_response(error) assert not bool(test_response) assert test_response.message == str(error) assert isinstance(test_response.error, Exception) assert str(test_response.error) == str(error) assert test_response.status is response.ERROR def test_create_validation_error_response(monkeypatch): """Test creating a validation error response.""" validation_error = 'this is invalid!' # Mocking response.create_error_response function create_error_response_mock = Mock() monkeypatch.setattr( response, 'create_error_response', create_error_response_mock) response.create_validation_error_response(validation_error) # Assert call_args, call_kwargs = create_error_response_mock.call_args assert isinstance(call_args[0], Warning) assert validation_error in str(call_args[0]) assert call_kwargs == dict(status=response.WARNING)