"""Test Kafka Executor.""" from unittest.mock import Mock from unittest.mock import patch import pytest from dbdeploy.dtos import KafkaCluster from dbdeploy.util.kafka import executor from kafka import KafkaAdminClient from kafka import KafkaConsumer from kafka import KafkaProducer @pytest.fixture def mock_kafka_producer(): """Mock kafka producer.""" path = 'dbdeploy.util.kafka.executor.KafkaProducer' with patch(path) as producer: producer = Mock(spec=KafkaProducer) yield producer @pytest.fixture def mock_kafka_consumer(): """Mock kafka consumer.""" path = 'dbdeploy.util.kafka.executor.KafkaConsumer' with patch(path) as consumer: consumer = Mock(spec=KafkaConsumer) yield consumer @pytest.fixture def mock_kafka_admin(): """Mock kafka admin client.""" path = 'dbdeploy.util.kafka.executor.KafkaAdminClient' with patch(path) as admin_client: admin_client = Mock(spec=KafkaAdminClient) yield admin_client @pytest.fixture def mock_kafka_cluster_dto(): """Mock requests.""" yield KafkaCluster(bootstrap_brokers='b1:9094', name='test_cluster') class TestKafkaExecutor: """Test kafka executor factory.""" def test_admin_client(self, mock_kafka_cluster_dto, mock_kafka_admin): """Return admin client instance.""" test_client = (executor.KafkaExecutor(mock_kafka_cluster_dto) .admin_client(client_id='test_client')) assert test_client is not None def test_producer(self, mock_kafka_cluster_dto, mock_kafka_producer): """Test executor returns producer instance.""" test_producer = (executor.KafkaExecutor(mock_kafka_cluster_dto) .producer(client_id='test_client')) assert test_producer is not None def test_consumer(self, mock_kafka_cluster_dto, mock_kafka_consumer): """Test executor returns consumer instance.""" test_consumer = (executor.KafkaExecutor(mock_kafka_cluster_dto) .consumer( client_id='test_client', auto_offset_reset='latest', group_id=None, topics=None, enable_auto_commit=True)) assert test_consumer is not None