diff --git a/geomagio/WebService.py b/geomagio/WebService.py index e304ade0831390d5077198feacd48dd1d9c62893..bb567864350917bc7710ad9383f0bd384d56d477 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 b57167bfe387a033c577b57f57d7a583075b1904..7c3052702d43a036dcc43f819c0be78029b836bd 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')