summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaulius Menkevičius <saulius.menkevicius@gmail.com>2013-10-09 17:02:45 +0300
committerSaulius Menkevičius <saulius.menkevicius@gmail.com>2013-10-09 17:02:45 +0300
commit997371b6e0b27a3976448db4b567d560c0d24560 (patch)
treea9ba6453decf59f55230e4d01c176558a701c7a3
parentadc6c726f6ef17d67785b40a3ac9840f312d4c68 (diff)
downloadraven-997371b6e0b27a3976448db4b567d560c0d24560.tar.gz
tests/contrib/flask/tests.py: tests for the Flask app.config["RAVEN_IGNORE_EXCEPTIONS"] configuration setting
-rw-r--r--tests/contrib/flask/tests.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/tests/contrib/flask/tests.py b/tests/contrib/flask/tests.py
index 16aa0d1..3453e8c 100644
--- a/tests/contrib/flask/tests.py
+++ b/tests/contrib/flask/tests.py
@@ -29,12 +29,15 @@ class User(AnonymousUserMixin):
get_id = lambda x: 1
-def create_app():
+def create_app(ignore_exceptions=None):
import os
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(40)
+ if ignore_exceptions:
+ app.config['RAVEN_IGNORE_EXCEPTIONS'] = ignore_exceptions
+
@app.route('/an-error/', methods=['GET', 'POST'])
def an_error():
raise ValueError('hello world')
@@ -84,6 +87,12 @@ class BaseTest(TestCase):
self.raven = TempStoreClient()
self.middleware = Sentry(self.app, client=self.raven)
+ def make_client_and_raven(self, *args, **kwargs):
+ app = create_app(*args, **kwargs)
+ raven = TempStoreClient()
+ Sentry(app, client=raven)
+ return app.test_client(), raven
+
class FlaskTest(BaseTest):
def test_does_add_to_extensions(self):
@@ -192,6 +201,27 @@ class FlaskTest(BaseTest):
http = event['sentry.interfaces.Http']
self.assertEqual({}, http.get('data'))
+ def test_error_handler_with_ignored_exception(self):
+ client, raven = self.make_client_and_raven(ignore_exceptions=[NameError, ValueError])
+
+ response = client.get('/an-error/')
+ self.assertEquals(response.status_code, 500)
+ self.assertEquals(len(raven.events), 0)
+
+ def test_error_handler_with_exception_not_ignored(self):
+ client, raven = self.make_client_and_raven(ignore_exceptions=[NameError, KeyError])
+
+ response = client.get('/an-error/')
+ self.assertEquals(response.status_code, 500)
+ self.assertEquals(len(raven.events), 1)
+
+ def test_error_handler_with_empty_ignore_exceptions_list(self):
+ client, raven = self.make_client_and_raven(ignore_exceptions=[])
+
+ response = client.get('/an-error/')
+ self.assertEquals(response.status_code, 500)
+ self.assertEquals(len(raven.events), 1)
+
class FlaskLoginTest(BaseTest):
@before