"""Unit tests for lambda function.""" # flake8: noqa F401, F811 from unittest.mock import AsyncMock import brotli import pytest from common.src.enums import CompressionFormats from ..conftest import sample_payload from ...src import app _sample_str: str = "hello" @pytest.fixture(autouse=True) def patched_sf_client(monkeypatch): mock_client = AsyncMock() mock_client.afetch_all = AsyncMock(return_value=_sample_str) monkeypatch.setattr(app, "sf_client", mock_client) def test_handler_sql_is_required(sample_payload): """Test handler SQL query must be provided in the payload.""" payload = {**sample_payload} del payload["sql"] with pytest.raises(app.ValidationError): app.handler(payload) @pytest.mark.parametrize( "compression, expected", [ (None, _sample_str), (CompressionFormats.BROTLI, brotli.compress(_sample_str.encode())), ], ) def test_handler_response_compression( compression, expected, sample_payload, patched_sf_client ): """Test handler response compression behavior.""" payload = {**sample_payload, "compression": compression} result = app.handler(payload) assert result == expected, f"Expected {expected}, got {result}"