From 8da80032b9d47b56fec10e3fe0c45b230f0129b5 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Jun 07 2018 15:59:01 +0000 Subject: Fix getting error message for HTTP 500 --- diff --git a/greenwave/tests/test_utils.py b/greenwave/tests/test_utils.py index 57fd8e7..000fba4 100644 --- a/greenwave/tests/test_utils.py +++ b/greenwave/tests/test_utils.py @@ -3,7 +3,13 @@ import pytest -from greenwave.utils import retry +import json + +from requests import ConnectionError, ConnectTimeout +from werkzeug.exceptions import InternalServerError + +import greenwave.app_factory +from greenwave.utils import json_error, retry def test_retry_passthrough(): @@ -35,3 +41,18 @@ def test_retry_count(): f() assert sum(calls) == 3 + + +@pytest.mark.parametrize('error, expected_error_message_part', [ + (ConnectionError('ERROR'), 'ERROR'), + (ConnectTimeout('TIMEOUT'), 'TIMEOUT'), + (InternalServerError(), 'The server encountered an internal error'), +]) +def test_json_error(error, expected_error_message_part): + app = greenwave.app_factory.create_app() + with app.app_context(): + with app.test_request_context(): + r = json_error(error) + data = json.loads(r.get_data()) + assert r.status_code == 500 + assert expected_error_message_part in data['message'] diff --git a/greenwave/utils.py b/greenwave/utils.py index a3635e6..b840d86 100644 --- a/greenwave/utils.py +++ b/greenwave/utils.py @@ -31,7 +31,7 @@ def json_error(error): else: # Could be ConnectionError or Timeout current_app.logger.exception('Returning 500 to user.') - response = jsonify(message=str(error.message)) + response = jsonify(message=str(error)) response.status_code = 500 response = insert_headers(response)