2424SINGLE_FILE_NAME = 'file1.py'
2525UPLOAD_DATA_TESTS_SINGLE_FILE = os .path .join (UPLOAD_DATA_TESTS_FILES_DIR , SINGLE_FILE_NAME )
2626BUCKET_NAME = 'mybucket'
27+ AES_ENCRYPTION_ENABLED = {'ServerSideEncryption' : 'AES256' }
2728
2829
2930@pytest .fixture ()
@@ -37,19 +38,46 @@ def sagemaker_session():
3738def test_upload_data_absolute_dir (sagemaker_session ):
3839 result_s3_uri = sagemaker_session .upload_data (UPLOAD_DATA_TESTS_FILES_DIR )
3940
40- uploaded_files = [args [0 ] for name , args , kwargs in sagemaker_session .boto_session .mock_calls
41- if name == 'resource().Object().upload_file' ]
41+ uploaded_files_with_args = [( args [0 ], kwargs ) for name , args , kwargs in sagemaker_session .boto_session .mock_calls
42+ if name == 'resource().Object().upload_file' ]
4243 assert result_s3_uri == 's3://{}/data' .format (BUCKET_NAME )
43- assert len (uploaded_files ) == 4
44- for file in uploaded_files :
44+ assert len (uploaded_files_with_args ) == 4
45+ for file , kwargs in uploaded_files_with_args :
4546 assert os .path .exists (file )
47+ assert kwargs ['ExtraArgs' ] is None
4648
4749
4850def test_upload_data_absolute_file (sagemaker_session ):
4951 result_s3_uri = sagemaker_session .upload_data (UPLOAD_DATA_TESTS_SINGLE_FILE )
5052
51- uploaded_files = [args [0 ] for name , args , kwargs in sagemaker_session .boto_session .mock_calls
52- if name == 'resource().Object().upload_file' ]
53+ uploaded_files_with_args = [( args [0 ], kwargs ) for name , args , kwargs in sagemaker_session .boto_session .mock_calls
54+ if name == 'resource().Object().upload_file' ]
5355 assert result_s3_uri == 's3://{}/data/{}' .format (BUCKET_NAME , SINGLE_FILE_NAME )
54- assert len (uploaded_files ) == 1
55- assert os .path .exists (uploaded_files [0 ])
56+ assert len (uploaded_files_with_args ) == 1
57+ (file , kwargs ) = uploaded_files_with_args [0 ]
58+ assert os .path .exists (file )
59+ assert kwargs ['ExtraArgs' ] is None
60+
61+
62+ def test_upload_data_aes_encrypted_absolute_dir (sagemaker_session ):
63+ result_s3_uri = sagemaker_session .upload_data (UPLOAD_DATA_TESTS_FILES_DIR , extra_args = AES_ENCRYPTION_ENABLED )
64+
65+ uploaded_files_with_args = [(args [0 ], kwargs ) for name , args , kwargs in sagemaker_session .boto_session .mock_calls
66+ if name == 'resource().Object().upload_file' ]
67+ assert result_s3_uri == 's3://{}/data' .format (BUCKET_NAME )
68+ assert len (uploaded_files_with_args ) == 4
69+ for file , kwargs in uploaded_files_with_args :
70+ assert os .path .exists (file )
71+ assert kwargs ['ExtraArgs' ] == AES_ENCRYPTION_ENABLED
72+
73+
74+ def test_upload_data_aes_encrypted_absolute_file (sagemaker_session ):
75+ result_s3_uri = sagemaker_session .upload_data (UPLOAD_DATA_TESTS_SINGLE_FILE , extra_args = AES_ENCRYPTION_ENABLED )
76+
77+ uploaded_files_with_args = [(args [0 ], kwargs ) for name , args , kwargs in sagemaker_session .boto_session .mock_calls
78+ if name == 'resource().Object().upload_file' ]
79+ assert result_s3_uri == 's3://{}/data/{}' .format (BUCKET_NAME , SINGLE_FILE_NAME )
80+ assert len (uploaded_files_with_args ) == 1
81+ (file , kwargs ) = uploaded_files_with_args [0 ]
82+ assert os .path .exists (file )
83+ assert kwargs ['ExtraArgs' ] == AES_ENCRYPTION_ENABLED
0 commit comments