"""Test event handling logic.""" import json from unittest import mock from kafka_utils.exceptions import IneligibleEventException import pytest from src import app from src.logic import event_handling def test_processing_logic_ineligible( mocker, mock_event, mock_logger, mock_event_source_message, mock_connectors, ): """Test processing_logic with ineligible event.""" mocker.patch.object( mock_event_source_message.__class__, 'value', mock.PropertyMock(return_value=json.dumps({ 'operation': { 'type': 'update', 'context': 'not_queue_move', }, 'payload': 'some truthy payload' })), ) fetch_review_queue_item_data_mock, patch_product_mock_os, _ = \ mock_connectors with pytest.raises(IneligibleEventException, match='skip operation: not_queue_move'): event_handling.processing_logic( mock_event_source_message.topic, mock_event_source_message.value, app.deserializer, ) fetch_review_queue_item_data_mock.assert_not_called() patch_product_mock_os.assert_not_called() def test_processing_logic_success( mock_event, mock_logger, mock_event_source_message, mock_connectors, ): """Test processing_logic success.""" fetch_review_queue_item_data_mock, patch_product_mock_os, \ expected_product_patch = mock_connectors result = event_handling.processing_logic( mock_event_source_message.topic, mock_event_source_message.value, app.deserializer, ) fetch_review_queue_item_data_mock.assert_called_once_with(10063) patch_product_mock_os.assert_has_calls(expected_product_patch) assert result is None