"""Tests for the SQS utilities.""" import json import pytest from collaborator import config from collaborator.utils import sqs def test_send_bulk_report_trigger_message(mocker): """Test sending a message to the queue.""" mock_client = mocker.MagicMock() mock_queue = mocker.MagicMock() mock_client.get_queue_by_name.return_value = mock_queue mock_get_client = mocker.patch.object(sqs, "_get_client") mock_get_client.return_value = mock_client sqs.send_bulk_report_trigger_message( "correlation_id", report_run_uuid=123, ) mock_queue.send_message.assert_called_with( MessageBody=( json.dumps( { "Correlation-Id": "correlation_id.1", "report_run_uuid": 123, } ) ) ) @pytest.mark.parametrize( "params,required_params", [ ( {"report_run_uuid": 1234}, sqs.REQUIRED_PARAMS[config.SQS_BULK_REPORT_TRIGGER_QUEUE_NAME], ), ], ) def test_verify_params_success(params, required_params): """Test successfully verifying parameters.""" sqs._verify_params(params, required_params) @pytest.mark.parametrize( "params,required_params", [ ( {}, sqs.REQUIRED_PARAMS[config.SQS_BULK_REPORT_TRIGGER_QUEUE_NAME], ) ], ) def test_verify_params_fail(params, required_params): """Test failing to verify parameters.""" with pytest.raises(ValueError): sqs._verify_params(params, required_params)