import json from faker import Faker from kafka_utils.testing.unit.fixture_plugin import MockProducer from config import KAFKA_RESYNC_PAYMENT_READINESS_TOPIC from src.kafka import emit_resync_payment_readiness_event def test_emit_resync_payment_readiness_event( kafka_mock: MockProducer, faker: Faker ) -> None: account_payee_id = faker.pyint() emit_resync_payment_readiness_event(account_payee_id) assert len(kafka_mock.history.messages) == 1 message = kafka_mock.history.messages[0] assert message.topic() == KAFKA_RESYNC_PAYMENT_READINESS_TOPIC assert message.key() == f'account_payee_id_{account_payee_id}'.encode() assert json.loads(message.value())['accountPayee']['accountPayeeId'] == str( account_payee_id ) assert len(kafka_mock.queue) == 0 kafka_mock.assert_call_count('flush', 1)