"""Tests for the Kafka Connector.""" from unittest import mock from unittest.mock import MagicMock from abacus_contract.connectors.kafka import ( _create_contract_event_key_and_payload, emit_contract_event, ) from abacus_contract.constants.constants import ( CONTRACT_KAFKA_EVENT_NAMES, CONTRACT_KAFKA_EVENT_TYPES, ) @mock.patch('abacus_contract.connectors.kafka.Config') @mock.patch('abacus_contract.connectors.kafka._create_contract_event_key_and_payload') def test_emit_payee_event_oauth_complete_success( mock_create_contract_event_key_and_payload, mock_config ): """Test emit_contract_event success.""" contract_id = 123 action_name = CONTRACT_KAFKA_EVENT_NAMES.CONTRACT_CREATED mock_kafka_producers = { CONTRACT_KAFKA_EVENT_NAMES.CONTRACT_CREATED: MagicMock( produce_event=MagicMock() ), } mock_config.KAFKA_PRODUCERS_BY_ACTION_NAME = mock_kafka_producers mock_payload = { 'event_type': 'CREATE', 'contract_id': contract_id, } mock_key = f'contract_id_{contract_id}' mock_create_contract_event_key_and_payload.return_value = mock_key, mock_payload emit_contract_event(contract_id, action_name) mock_create_contract_event_key_and_payload.assert_called_once_with( contract_id, CONTRACT_KAFKA_EVENT_NAMES.CONTRACT_CREATED ) mock_kafka_producers[ CONTRACT_KAFKA_EVENT_NAMES.CONTRACT_CREATED ].__enter__.return_value.produce_event.assert_called_once_with( mock_key, mock_payload ) def test_create_contract_event_key_and_payload(): """Test _create_contract_event_key_and_payload.""" mock_contract_id = 123 mock_action_name = CONTRACT_KAFKA_EVENT_NAMES.CONTRACT_CREATED key, payload = _create_contract_event_key_and_payload( mock_contract_id, mock_action_name ) assert key == f'contract_id_{mock_contract_id}' assert payload == { 'event_type': CONTRACT_KAFKA_EVENT_TYPES[mock_action_name], 'contract_id': mock_contract_id, }