def test_excepthook(): ddtrace.install_excepthook() class Foobar(Exception): pass called = {} def original(tp, value, traceback): called['yes'] = True sys.excepthook = original ddtrace.install_excepthook() e = Foobar() tracer = ddtrace.Tracer() tracer._dogstatsd_client = mock.Mock() with override_global_tracer(tracer): sys.excepthook(e.__class__, e, None) tracer._dogstatsd_client.increment.assert_has_calls( (mock.call('datadog.tracer.uncaught_exceptions', 1, tags=['class:Foobar']), )) assert called
def test_installed_excepthook(): ddtrace.install_excepthook() assert sys.excepthook is ddtrace._excepthook ddtrace.uninstall_excepthook() assert sys.excepthook is not ddtrace._excepthook ddtrace.install_excepthook() assert sys.excepthook is ddtrace._excepthook