"""Tests for message handling logic.""" import json from unittest.mock import patch from src import config from src.logic import message_handling @patch('src.logic.message_handling.get_sqs_connector') def test_indexing_product(mock_sqs): """Test indexing a product.""" mock_indexes = [{'reviewQueueId': 1, 'productId': 1, 'queueName': 'initial'}] mock_msg_body = {'operation': 'update', 'product_id': 1, 'review_queue_id': 1} mock_sqs().send_message.return_value = {'ResponseMetadata': {'HTTPStatusCode': 200}} message_handling.sqs_send_message(mock_indexes) mock_sqs().send_message.assert_called_once_with( QueueUrl='https://foo', MessageBody=json.dumps(mock_msg_body) ) @patch('src.logic.message_handling.get_os_connector') def test_get_all_items_os(mock_os): """Test get all items.""" from src.logic.message_handling import get_all_indexes mock_os.return_value.os.count.return_value = {'count': 2} mock_os.return_value.os.search.return_value = {'hits': { 'hits': [ {'_source': {'review_queue_id': 1, 'product_id': 1, 'queue_name': 'initial'}}, {'_source': {'review_queue_id': 2, 'product_id': 2, 'queue_name': 'on_hold'}} ]} } response = get_all_indexes() assert response == [{'reviewQueueId': 1, 'productId': 1, 'queueName': 'initial'}] mock_os.return_value.os.count.assert_called_once_with(index=config.OPENSEARCH_INDEX_ALIAS) mock_os.return_value.os.search.assert_called_once_with( index=config.OPENSEARCH_INDEX_ALIAS, _source=True, _source_includes=['review_queue_id', 'product_id', 'queue_name'], size=2 )