"""Test response handler utility.""" from owsrequest.test_utils import MockOwsResponse from reporting.utils import response_handler_util def raise_value_error(_): """Raise value error when decoding json.""" raise ValueError('No json error') def test_parse_response_when_json_present(): """Test parsing of response when json is present in the response body.""" service = 'ows-microservice' json_response = {'some': 'json'} mock_response = MockOwsResponse(200, json_response) parsed_response = response_handler_util.safe_decode_json( mock_response, service ) assert parsed_response == json_response def test_parse_response_when_no_json_is_present(monkeypatch): """Test parsing response when json is not present in the response body.""" service = 'ows-microservice' monkeypatch.setattr(MockOwsResponse, 'json', raise_value_error) mock_response = MockOwsResponse(500, {}) parsed_response = response_handler_util.safe_decode_json( mock_response, service ) expected_error_message = ( 'An error was encountered decoding response in ows-microservice' ) assert parsed_response['code'] == 'Error' assert parsed_response['status'] == 500 assert parsed_response['message'] == expected_error_message