"""Unit testcases for S3 connector.""" from unittest.mock import MagicMock, patch from adjustment_file_validation.connectors import s3 from adjustment_file_validation.connectors.s3 import get_error_file_path def test_get_error_file_path(): """Test get_error_file_path method.""" statement_period_adjustment_file_id = 1 bucket_name = 'test-bucket' result = get_error_file_path(bucket_name, statement_period_adjustment_file_id) assert result == 's3://test-bucket/1/1-error.xlsx' @patch('adjustment_file_validation.connectors.s3.NamedTemporaryFile') def test_download_file(mock_named_temporary_file): """Test download_file function.""" bucket_name = 'bucket_name' file_path = 'file_path' mock_s3_client = MagicMock() s3.s3_client = mock_s3_client s3.download_file(bucket_name, file_path) mock_s3_client.download_file.assert_called_once_with( bucket_name, file_path, mock_named_temporary_file().name, ExtraArgs={'ExpectedBucketOwner': '437795906767'}, ) def test_upload_file(): """Test upload_file function.""" bucket_name = 'bucket_name' file_path = 'file_path' file_name = 'file_name' mock_s3_client = MagicMock() s3.s3_client = mock_s3_client s3.upload_file(bucket_name, file_path, file_name) mock_s3_client.upload_file.assert_called_once_with( file_name, bucket_name, file_path, ExtraArgs={'ExpectedBucketOwner': '437795906767'}, )