def test_get_topics_with_prefix( non_interactive_cli_runner: CliRunner, topic_controller: TopicController, confluent_admin_client: confluent_kafka.admin.AdminClient, ): topic_base = "".join(random.choices(ascii_letters, k=5)) prefix_1 = "ab" prefix_2 = "fx" new_topics = [ prefix_1 + topic_base, prefix_2 + topic_base, prefix_1 + prefix_2 + topic_base ] topic_controller.create_topics( [Topic(new_topic, replication_factor=1) for new_topic in new_topics]) confluent_admin_client.poll(timeout=1) result = non_interactive_cli_runner.invoke(get_topics, ["-p", prefix_1, "-o", "json"], catch_exceptions=False) assert result.exit_code == 0 retrieved_topics = json.loads(result.output) assert len(retrieved_topics) > 1 for retrieved_topic in retrieved_topics: assert retrieved_topic.startswith(prefix_1)
def test_topic_deletion_works( topic_controller: TopicController, confluent_admin_client: confluent_kafka.admin.AdminClient, topic: str): topics = confluent_admin_client.list_topics(timeout=5).topics.keys() assert topic in topics topic_controller.delete_topic(Topic(topic)) # Invalidate cache confluent_admin_client.poll(timeout=1) topics = confluent_admin_client.list_topics(timeout=5).topics.keys() assert topic not in topics
def test_topic_creation_works( topic_controller: TopicController, confluent_admin_client: confluent_kafka.admin.AdminClient, topic_id: str): topics = confluent_admin_client.list_topics(timeout=5).topics.keys() assert topic_id not in topics topic_controller.create_topics([Topic(topic_id, replication_factor=1)]) # invalidate cache confluent_admin_client.poll(timeout=1) topics = confluent_admin_client.list_topics(timeout=5).topics.keys() assert topic_id in topics