def event_entrypoints():
"""Declare some events by mocking the invenio_stats.events entrypoint.
It yields a list like [{event_type: <event_type_name>}, ...].
"""
data = []
result = []
for idx in range(5):
event_type_name = 'event_{}'.format(idx)
from pkg_resources import EntryPoint
entrypoint = EntryPoint(event_type_name, event_type_name)
conf = dict(event_type=event_type_name, templates='/',
processor_class=EventsIndexer)
entrypoint.load = lambda conf=conf: (lambda: [conf])
data.append(entrypoint)
result.append(conf)
# including file_download
event_type_name = 'file-download'
from pkg_resources import EntryPoint
entrypoint = EntryPoint('invenio_files_rest', 'test_dir')
conf = dict(event_type=event_type_name, templates='contrib/file-download',
processor_class=EventsIndexer)
entrypoint.load = lambda conf=conf: (lambda: [conf])
data.append(entrypoint)
entrypoints = mock_iter_entry_points_factory(data, 'invenio_stats.events')
with patch('invenio_stats.ext.iter_entry_points',
entrypoints):
yield result
评论列表
文章目录