From 2f4c9b59ce70b6d2f1281b7c3496110fd0258ff9 Mon Sep 17 00:00:00 2001 From: Jeremy Fee <jmfee@usgs.gov> Date: Tue, 6 Nov 2018 13:36:39 -0700 Subject: [PATCH] Update WebService to use configurable error stream, to reduce test noise --- geomagio/WebService.py | 8 +++++--- test/WebService_test.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/geomagio/WebService.py b/geomagio/WebService.py index e304ade0..bb567864 100644 --- a/geomagio/WebService.py +++ b/geomagio/WebService.py @@ -77,7 +77,8 @@ def _get_param(params, key, required=False): class WebService(object): def __init__(self, factory=None, version=None, metadata=None, - usage_documentation=None): + usage_documentation=None, error_stream=sys.stderr): + self.error_stream = error_stream self.factory = factory or EdgeFactory() self.metadata = metadata or ObservatoryMetadata().metadata self.version = version @@ -110,8 +111,9 @@ class WebService(object): if isinstance(timeseries_string, str): timeseries_string = timeseries_string.encode('utf8') except Exception as e: - print("Error processing request: %s" % str(e), - file=sys.stderr) + if self.error_stream: + print("Error processing request: %s" % str(e), + file=self.error_stream) 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 b57167bf..7c305270 100644 --- a/test/WebService_test.py +++ b/test/WebService_test.py @@ -138,7 +138,7 @@ def test_requests(): assert_equals(response.status, '200 OK') assert_equals(response.content_type, 'text/plain') # Test internal server error (use fake factory) - app = TestApp(WebService(ErrorFactory())) + app = TestApp(WebService(ErrorFactory(), error_stream=None)) response = app.get('/?id=BOU', expect_errors=True) assert_equals(response.status_int, 500) assert_equals(response.status, '500 Internal Server Error') -- GitLab