def test_encrypted_upload_wal(self, rfo_mock, boto_mock): """ Test the upload of a WAL """ # Create a simple CloudWalUploader obj cloud_interface = S3CloudInterface("s3://bucket/path/to/dir", encryption="AES256") uploader = CloudWalUploader(cloud_interface, "test-server") source = "/wal_dir/000000080000ABFF000000C1" # Simulate the file object returned by the retrieve_file_obj method rfo_mock.return_value.name = source uploader.upload_wal(source) session_mock = boto_mock.Session.return_value s3_client_mock = session_mock.resource.return_value.meta.client # Check the call for the creation of the destination key s3_client_mock.upload_fileobj.assert_called_once_with( Fileobj=rfo_mock.return_value, Bucket=cloud_interface.bucket_name, Key=os.path.join( cloud_interface.path, uploader.server_name, "wals", hash_dir(source), os.path.basename(source), ), ExtraArgs={"ServerSideEncryption": "AES256"}, )
def test_upload_wal(self, rfo_mock, ContainerClientMock): """ Test the upload of a WAL """ # Create a simple S3WalUploader obj container_name = "container" cloud_interface = AzureCloudInterface( url="https://account.blob.core.windows.net/container/path/to/dir") uploader = CloudWalUploader(cloud_interface, "test-server") source = "/wal_dir/000000080000ABFF000000C1" # Simulate the file object returned by the retrieve_file_obj method rfo_mock.return_value.name = source uploader.upload_wal(source) ContainerClientMock.from_connection_string.assert_called_once_with( conn_str=os.environ["AZURE_STORAGE_CONNECTION_STRING"], container_name=container_name, ) container_client = ContainerClientMock.from_connection_string.return_value # Check the call for the creation of the destination key container_client.upload_blob.assert_called_once_with( data=rfo_mock.return_value, name=os.path.join( cloud_interface.path, uploader.server_name, "wals", hash_dir(source), os.path.basename(source), ), overwrite=True, )
def test_upload_wal(self, rfo_mock, cloud_interface_mock): """ Test upload_wal calls CloudInterface with expected parameters """ bucket_path = "gs://bucket/path/to/dir" server_name = "test_server" type(cloud_interface_mock).path = mock.PropertyMock( return_value=bucket_path) uploader = CloudWalUploader(cloud_interface_mock, server_name) source = "/wal_dir/000000080000ABFF000000C1" # Simulate the file object returned by the retrieve_file_obj method rfo_mock.return_value.name = source mock_fileobj_length = 42 rfo_mock.return_value.tell.return_value = mock_fileobj_length uploader.upload_wal(source) expected_key = os.path.join(bucket_path, server_name, "wals", hash_dir(source), os.path.basename(source)) cloud_interface_mock.upload_fileobj.assert_called_once_with( fileobj=rfo_mock(), key=expected_key, override_tags=None)