"""Lambda test module.""" from io import StringIO from unittest.mock import MagicMock, patch import pytest from src import app as index sample_csv = StringIO( 'Subaccount ID,Project ID,Vendor ID\n' '12,35,2\n' '12,55,2\n' '24,65,2\n' ) @patch('src.app.get_s3_data') @patch('src.app.validate_vendor') @patch('src.app.update_mapping_in_art_relations') @patch('src.app.update_mapping_in_neo4j') @patch('src.app.logger') def test_handler( mock_logger, mock_update_in_neo4j, mock_update_in_art_relations, mock_validate_vendor, mock_get_data ): """Test handler function.""" mock_update_in_neo4j.return_value = MagicMock(return_value=None) mock_update_in_art_relations.return_value = MagicMock(return_value=None) mock_validate_vendor.return_value = 1 mock_get_data.return_value = sample_csv result = index.handler({'filename': 'xyz'}, None) assert result == {'status': 'OK'} mock_update_in_art_relations.assert_called_with( {'12': [35, 55], '24': [65]}, mock_logger ) def test_handler_unknown_event(): """Test with invalid event params.""" result = index.handler({'file': 'abc'}, None) assert result.get('status') == 'Fail' def test_handler_raises_exception(): """Test handler exception.""" with pytest.raises(Exception): index.handler({'filename': 'abc.csv'}, None)