diff options
author | Saulius Menkevičius <saulius.menkevicius@gmail.com> | 2013-10-09 17:02:45 +0300 |
---|---|---|
committer | Saulius Menkevičius <saulius.menkevicius@gmail.com> | 2013-10-09 17:02:45 +0300 |
commit | 997371b6e0b27a3976448db4b567d560c0d24560 (patch) | |
tree | a9ba6453decf59f55230e4d01c176558a701c7a3 | |
parent | adc6c726f6ef17d67785b40a3ac9840f312d4c68 (diff) | |
download | raven-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.py | 32 |
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 |