Staged modified swh/search/tests/test_cli.py @@ -9,6 +9,7 @@ import yaml import pytest +from typing import Dict, Set from unittest.mock import patch, MagicMock from click.testing import CliRunner @@ -37,11 +38,28 @@ journal: class MockedKafkaConsumerWithTopics(MockedKafkaConsumer): def list_topics(self, timeout=None): - return { + class FakeTopic: + def __init__(self, topics: Set[str]): + self.topics: Dict[str, str] = { + kv: kv for kv in topics + } + + return FakeTopic({ "swh.journal.objects.origin", "swh.journal.objects.origin_visit", - } + }) + + def subscribe(self, topics): + """Adapt implementation + + """ + unknown_topics = set(topics) - set(self.list_topics().topics.values()) + if unknown_topics: + raise ValueError("Unknown topics %s" % ", ".join(unknown_topics)) def invoke(catch_exceptions, args, config="", *, elasticsearch_host):