def setup_context(self, *args, **kwargs):
     """
     Sets context for the request.
     :param T sender: the object sending the signal.
     :param extra: extra arguments passed by the signal.
     """
     honeybadger.set_context(**self._generate_context())
    def test_process_response(self):
        request = self.rf.get('test')
        request.resolver_match = self.url.resolve('test')
        response = Mock()
        honeybadger.set_context(foo='bar')
        self.middleware.process_request(request)

        self.middleware.process_response(request, response)
        self.assertDictEqual({}, honeybadger._get_context(), msg='Context should be cleared after response handling')
        self.assertIsNone(current_request(), msg='Current request should be cleared after response handling')
    def test_process_response(self):
        request = self.rf.get('test')
        response = Mock()
        honeybadger.set_context(foo='bar')
        self.middleware.process_request(request)

        self.middleware.process_response(request, response)
        self.assertDictEqual(
            {},
            honeybadger._get_context(),
            msg='Context should be cleared after response handling')
        self.assertIsNone(
            current_request(),
            msg='Current request should be cleared after response handling')
    def test_reset_context_when_reporting(self, mock_hb):
        from flask.views import MethodView

        FlaskHoneybadger(self.app, report_exceptions=True, reset_context_after_request=True)

        honeybadger.set_context(foo='bar')

        class ErrorView(MethodView):
            def get(self):
                return 1 / 0

        self.app.add_url_rule('/error', view_func=ErrorView.as_view('error'))

        self.app.test_client().get('/error?a=1&b=2&b=3')

        self.assert_called_with_exception_type(mock_hb, ZeroDivisionError)
        self.assertEqual(2, mock_hb.reset_context.call_count)
    def test_dont_reset_context_when_not_reporting(self, mock_hb):
        from flask.views import MethodView

        FlaskHoneybadger(self.app, report_exceptions=False, reset_context_after_request=False)

        honeybadger.set_context(foo='bar')

        class ErrorView(MethodView):
            def get(self):
                return 1 / 0

        self.app.add_url_rule('/error', view_func=ErrorView.as_view('error'))

        self.app.test_client().get('/error?a=1&b=2&b=3')

        mock_hb.notify.assert_not_called()
        mock_hb.reset_context.assert_not_called()
Beispiel #6
0
    def test_reset_context_when_reporting(self, mock_hb):
        from flask.views import MethodView

        FlaskHoneybadger(self.app,
                         report_exceptions=True,
                         reset_context_after_request=True)

        honeybadger.set_context(foo='bar')

        class ErrorView(MethodView):
            def get(self):
                return 1 / 0

        self.app.add_url_rule('/error', view_func=ErrorView.as_view('error'))

        self.app.test_client().get('/error?a=1&b=2&b=3')

        self.assert_called_with_exception_type(mock_hb, ZeroDivisionError)
        self.assertEqual(2, mock_hb.reset_context.call_count)
Beispiel #7
0
    def test_dont_reset_context_when_not_reporting(self, mock_hb):
        from flask.views import MethodView

        FlaskHoneybadger(self.app,
                         report_exceptions=False,
                         reset_context_after_request=False)

        honeybadger.set_context(foo='bar')

        class ErrorView(MethodView):
            def get(self):
                return 1 / 0

        self.app.add_url_rule('/error', view_func=ErrorView.as_view('error'))

        self.app.test_client().get('/error?a=1&b=2&b=3')

        mock_hb.notify.assert_not_called()
        mock_hb.reset_context.assert_not_called()
# Honeybadger for Python
# https://github.com/honeybadger-io/honeybadger-python
#
# This file is an example of how to report unhandled Python exceptions to
# Honeybadger. To run this example:

# $ pip install honeybadger
# $ HONEYBADGER_API_KEY=your-api-key python unhandled.py
from __future__ import print_function
from honeybadger import honeybadger

# Uncomment the following line or use the HONEYBADGER_API_KEY environment
# variable to configure the API key for your Honeybadger project:
# honeybadger.configure(api_key='your api key')

import logging
logging.getLogger('honeybadger').addHandler(logging.StreamHandler())

def method_two():
    mydict = dict(a=1)
    print(mydict['b'])

def method_one():
    method_two()

if __name__ == '__main__':
    honeybadger.set_context(user_email="*****@*****.**")
    method_one()
# https://github.com/honeybadger-io/honeybadger-python
#
# This file is an example of how to report unhandled Python exceptions to
# Honeybadger. To run this example:

# $ pip install honeybadger
# $ HONEYBADGER_API_KEY=your-api-key python unhandled.py
from __future__ import print_function
from honeybadger import honeybadger

# Uncomment the following line or use the HONEYBADGER_API_KEY environment
# variable to configure the API key for your Honeybadger project:
# honeybadger.configure(api_key='your api key')

import logging
logging.getLogger('honeybadger').addHandler(logging.StreamHandler())


def method_two():
    mydict = dict(a=1)
    print(mydict['b'])


def method_one():
    method_two()


if __name__ == '__main__':
    honeybadger.set_context(user_email="*****@*****.**")
    method_one()