diff --git a/perceval/backends/core/zulip.py b/perceval/backends/core/zulip.py index cf91b42e8..a0c1bfeed 100644 --- a/perceval/backends/core/zulip.py +++ b/perceval/backends/core/zulip.py @@ -134,6 +134,38 @@ def parse_messages(self, raw_messages): return anchor, found_newest, messages + # def fetch_items(self, category, **kwargs): + # """Fetch the messages. + # + # :param category: the category of items to fetch + # :param kwargs: backend arguments + # + # :return: a generator of items + # """ + # + # anchor = 'oldest' + # fetching = True + # + # while fetching: + # raw_messages = self.client.get_messages(anchor) + # + # found_newest, messages = self.parse_messages(raw_messages) + # + # for message in messages: + # yield message + # anchor = message['id'] + # + # if found_newest: + # fetching = False + # + # def parse_messages(self, raw_messages): + # result = json.loads(raw_messages) + # + # found_newest = result.get('found_newest', False) + # messages = result.get('messages', None) + # + # return found_newest, messages + @classmethod def has_archiving(cls): """Returns whether it supports archiving items on the fetch process. diff --git a/tests/test_zulip.py b/tests/test_zulip.py index dfe306643..80817c15b 100644 --- a/tests/test_zulip.py +++ b/tests/test_zulip.py @@ -34,10 +34,14 @@ ZulipCommand) -ZULIP_CHAT_URL = 'https://example.zulipchat.com/' +ZULIP_CHAT_URL = 'https://example.zulipchat.com' ZULIP_CHAT_API_URL = '/api/v1/messages' ZULIP_MESSAGE_URL = ZULIP_CHAT_URL + ZULIP_CHAT_API_URL +email='bot@zulipchat.com' +api_token='aaaa' +AUTH = (email, api_token) + def read_file(filename): with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), filename), 'rb') as f: @@ -63,6 +67,18 @@ def setup_http_server(): status=200) +class MockedZulipClient(ZulipClient): + """Mocked Zulip client for testing""" + + def __init__(self, url, stream, email, api_token, archive=None, + from_archive=False, ssl_verify=True): + super().__init__(url, stream, email, api_token, + archive=archive, + from_archive=from_archive, + ssl_verify=ssl_verify + ) + + class TestZulipBackend(unittest.TestCase): """Zulip backend tests"""