"""Tests for exception handler.""" import json from unittest.mock import patch import pytest from conflict_manager import api from conflict_manager import exceptions from conflict_manager import handlers # noqa (handlers are imported for test client) @pytest.fixture def fixture_client(): """Create an api test client fixture.""" return api.app.test_client() @patch('conflict_manager.handlers.jsonify', side_effect=Exception()) def test_exception_handler(mock_jsonify, fixture_client): """Test an uncaught Exception results in a 500 status code.""" res = fixture_client.get('/hello/') assert res.status_code == 500 @patch( 'conflict_manager.handlers.jsonify', side_effect=exceptions.ValidationError(message='test message')) def test_validation_error_exception_handler(mock_jsonify, fixture_client): """Test an uncaught Exception results in a 500 status code.""" res = fixture_client.get('/hello/') assert res.status_code == 400 payload = json.loads(res.data.decode()) assert payload == {'code': 'validation_error', 'message': 'test message'}