diff --git a/tests/breadcrumbs/tests.py b/tests/breadcrumbs/tests.py index 1acc4b42d..c68492505 100644 --- a/tests/breadcrumbs/tests.py +++ b/tests/breadcrumbs/tests.py @@ -9,6 +9,11 @@ from io import StringIO +class DummyClass(object): + def dummy_method(self): + pass + + class BreadcrumbTestCase(TestCase): def test_crumb_buffer(self): @@ -153,3 +158,28 @@ def handler(logger, level, msg, args, kwargs): logger.debug('aha!') crumbs = client.context.breadcrumbs.get_buffer() assert len(crumbs) == 0 + + def test_hook_libraries(self): + + @breadcrumbs.libraryhook('dummy') + def _install_func(): + old_func = DummyClass.dummy_method + + def new_func(self): + breadcrumbs.record(type='dummy', category='dummy', message="Dummy message") + old_func(self) + + DummyClass.dummy_method = new_func + + client = Client('http://foo:bar@example.com/0', hook_libraries=['requests']) + with client.context: + DummyClass().dummy_method() + crumbs = client.context.breadcrumbs.get_buffer() + assert 'dummy' not in set([i['type'] for i in crumbs]) + + client = Client('http://foo:bar@example.com/0', hook_libraries=['requests', 'dummy']) + with client.context: + DummyClass().dummy_method() + crumbs = client.context.breadcrumbs.get_buffer() + assert 'dummy' in set([i['type'] for i in crumbs]) +