def test_makedir_other_exception(self, makedirs): # If makedirs() raises any other kind of exception, we should # propogate the exception. makedirs.side_effect = RuntimeError() with self.assertRaises(RuntimeError): fileinfo.save_file(self.filename, self.response_data, self.last_update) self.assertFalse(os.path.isfile(self.filename))
def test_stream_file_md5_error(self): with mock.patch('sys.stdout', new=six.StringIO()) as mock_stdout: self.response_data['ETag'] = '"0"' with self.assertRaises(MD5Error): fileinfo.save_file(None, self.response_data, None, True) # Make sure nothing is written to stdout. self.assertEqual(mock_stdout.getvalue(), "")
def test_no_raise_md5_when_md5_unavailable(self): self.response_data['ETag'] = '"0"' self.response_data['ServerSideEncryption'] = 'AES256' self.set_md5_available(False) # Should not raise any md5 error. fileinfo.save_file(self.filename, self.response_data, self.last_update) # The file should have been saved. self.assertTrue(os.path.isfile(self.filename))
def test_no_raise_md5_with_kms(self): # Ensure MD5 is not checked when kms is used by providing a bad MD5. self.response_data['ETag'] = '"0"' self.response_data['ServerSideEncryption'] = 'aws:kms' # Should not raise any md5 error. fileinfo.save_file(self.filename, self.response_data, self.last_update) # The file should have been saved. self.assertTrue(os.path.isfile(self.filename))
def test_raise_md5_with_no_kms_sse(self): # Ensure MD5 is checked if the sse algorithm is not kms. self.response_data["ETag"] = '"0"' self.response_data["ServerSideEncryption"] = "AES256" # Should raise a md5 error. with self.assertRaises(MD5Error): fileinfo.save_file(self.filename, self.response_data, self.last_update) # The file should not have been saved. self.assertFalse(os.path.isfile(self.filename))
def test_raise_md5_with_no_kms_sse(self): # Ensure MD5 is checked if the sse algorithm is not kms. self.response_data['ETag'] = '"0"' self.response_data['ServerSideEncryption'] = 'AES256' # Should raise a md5 error. with self.assertRaises(MD5Error): fileinfo.save_file(self.filename, self.response_data, self.last_update) # The file should not have been saved. self.assertFalse(os.path.isfile(self.filename))
def test_stream_file(self): with mock.patch('sys.stdout', new=six.StringIO()) as mock_stdout: fileinfo.save_file(None, self.response_data, None, True) self.assertEqual(mock_stdout.getvalue(), "foobar")
def test_save_file_dir_exists(self): os.makedirs(os.path.dirname(self.filename)) # We should still be able to save the file. fileinfo.save_file(self.filename, self.response_data, self.last_update) self.assertTrue(os.path.isfile(self.filename))
def test_save_file(self): fileinfo.save_file(self.filename, self.response_data, self.last_update) self.assertTrue(os.path.isfile(self.filename))