"""Tests for Handlers.""" import json from unittest.mock import MagicMock from unittest.mock import patch from oto import response from conflict_manager import handlers from conflict_manager.api import app from conflict_manager.constants import error as error_consts def test_exception_handler(): """Verify exception_Handler returns 500 status code and json payload.""" with app.app_context(), patch('conflict_manager.handlers.g') as mock_g: message = ( 'The server encountered an internal error ' 'and was unable to complete your request.') mock_error = MagicMock() server_response = handlers.exception_handler(mock_error) mock_g.log.exception.assert_called_with(mock_error) # assert status code is 500 assert server_response.status_code == 500 # assert json payload response_message = json.loads(server_response.data.decode()) assert response_message['message'] == message assert response_message['code'] \ == response.error.ERROR_CODE_INTERNAL_ERROR def test_timeout_exception_handler(): """Verify handler returns 504 status code and json payload.""" with app.app_context(), patch('conflict_manager.handlers.g') as mock_g: message = ( 'The server encountered a response timeout ' 'and was unable to complete your request.') mock_error = MagicMock() server_response = handlers.timeout_exception_handler(mock_error) mock_g.log.exception.assert_called_with(mock_error) # assert status code is 504 assert server_response.status_code == 504 # assert json payload response_message = json.loads(server_response.data.decode()) assert response_message['message'] == message assert response_message['code'] \ == error_consts.ERROR_CODE_BAD_GATEWAY