diff --git a/geomagio/WebService.py b/geomagio/WebService.py index d49b8283a6be3c02fa177a9a30475255c0960e19..07bfcf059fc6b93d383fa4389751ba835c445c8d 100644 --- a/geomagio/WebService.py +++ b/geomagio/WebService.py @@ -6,7 +6,6 @@ from cgi import escape, parse_qs from collections import OrderedDict from datetime import datetime from json import dumps -import sys from geomagio.edge import EdgeFactory from geomagio.iaga2002 import IAGA2002Writer @@ -87,9 +86,8 @@ class WebService(object): query = self.parse(parse_qs(environ['QUERY_STRING'])) query._verify_parameters() self.output_format = query.output_format - except Exception: - exception = sys.exc_info()[1] - message = exception.args[0] + except Exception as e: + message = str(e) ftype = parse_qs(environ['QUERY_STRING']).get('format', [''])[0] if ftype == 'json': self.output_format = 'json' @@ -105,8 +103,7 @@ class WebService(object): query, timeseries, start_response, environ) if isinstance(timeseries_string, str): timeseries_string = timeseries_string.encode('utf8') - except Exception: - exception = sys.exc_info()[1] + except Exception as e: message = "Server error." error_body = self.error(500, message, environ, start_response) return [error_body] diff --git a/test/WebService_test.py b/test/WebService_test.py index cfa9a53f7759ffbd803a9180a967414638f7b34b..161a320b0e79f4ed5045702a562b2ceb4520430b 100644 --- a/test/WebService_test.py +++ b/test/WebService_test.py @@ -5,7 +5,6 @@ from nose.tools import assert_equals, assert_is_instance, assert_raises import numpy from webtest import TestApp -from geomagio.edge import EdgeFactory from geomagio.WebService import _get_param from geomagio.WebService import WebService import obspy.core @@ -75,7 +74,7 @@ def test_fetch(): Call function WebService.fetch to confirm tht it returns an obspy.core.stream object. """ - service = WebService(EdgeFactory()) + service = WebService(TestFactory()) query = service.parse(parse_qs('id=BOU&starttime=2016-06-06' '&endtime=2016-06-07&elements=H,E,Z,F&sampling_period=60' '&format=iaga2002&type=variation')) @@ -90,7 +89,7 @@ def test_parse(): string values are applied to the correct class attribute. Also confirm that default values are applied correctly. """ - service = WebService(EdgeFactory()) + service = WebService(TestFactory()) query = service.parse(parse_qs('id=BOU&starttime=2016-06-06' '&endtime=2016-06-07&elements=H,E,Z,F&sampling_period=60' '&format=iaga2002&type=variation'))