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'))