class TestDownloadStreamRequestSubmitter(BaseTransferRequestSubmitterTest): def setUp(self): super(TestDownloadStreamRequestSubmitter, self).setUp() self.filename = '-' self.cli_params['is_stream'] = True self.transfer_request_submitter = DownloadStreamRequestSubmitter( self.transfer_manager, self.result_queue, self.cli_params) def test_can_submit(self): fileinfo = FileInfo(src=self.bucket + '/' + self.key, dest=self.filename, operation_name='download') self.assertTrue(self.transfer_request_submitter.can_submit(fileinfo)) self.cli_params['is_stream'] = False self.assertFalse(self.transfer_request_submitter.can_submit(fileinfo)) def test_submit(self): fileinfo = FileInfo(src=self.bucket + '/' + self.key, dest=self.filename, compare_key=self.key) future = self.transfer_request_submitter.submit(fileinfo) self.assertIs(self.transfer_manager.download.return_value, future) download_call_kwargs = self.transfer_manager.download.call_args[1] self.assertIsInstance(download_call_kwargs['fileobj'], StdoutBytesWriter) self.assertEqual(download_call_kwargs['bucket'], self.bucket) self.assertEqual(download_call_kwargs['key'], self.key) self.assertEqual(download_call_kwargs['extra_args'], {}) ref_subscribers = [ QueuedResultSubscriber, ProgressResultSubscriber, DoneResultSubscriber, ] actual_subscribers = download_call_kwargs['subscribers'] self.assertEqual(len(ref_subscribers), len(actual_subscribers)) for i, actual_subscriber in enumerate(actual_subscribers): self.assertIsInstance(actual_subscriber, ref_subscribers[i]) def test_dry_run(self): self.cli_params['dryrun'] = True self.transfer_request_submitter = DownloadStreamRequestSubmitter( self.transfer_manager, self.result_queue, self.cli_params) fileinfo = FileInfo(dest=self.filename, dest_type='local', operation_name='download', src=self.bucket + '/' + self.key, src_type='s3', compare_key=self.key) self.transfer_request_submitter.submit(fileinfo) result = self.result_queue.get() self.assertIsInstance(result, DryRunResult) self.assertEqual(result.transfer_type, 'download') self.assertEqual(result.src, 's3://' + self.bucket + '/' + self.key) self.assertEqual(result.dest, '-')
class TestDownloadStreamRequestSubmitter(BaseTransferRequestSubmitterTest): def setUp(self): super(TestDownloadStreamRequestSubmitter, self).setUp() self.filename = '-' self.cli_params['is_stream'] = True self.transfer_request_submitter = DownloadStreamRequestSubmitter( self.transfer_manager, self.result_queue, self.cli_params) def test_can_submit(self): fileinfo = FileInfo( src=self.bucket+'/'+self.key, dest=self.filename, operation_name='download') self.assertTrue( self.transfer_request_submitter.can_submit(fileinfo)) self.cli_params['is_stream'] = False self.assertFalse( self.transfer_request_submitter.can_submit(fileinfo)) def test_submit(self): fileinfo = FileInfo( src=self.bucket+'/'+self.key, dest=self.filename, compare_key=self.key) future = self.transfer_request_submitter.submit(fileinfo) self.assertIs(self.transfer_manager.download.return_value, future) download_call_kwargs = self.transfer_manager.download.call_args[1] self.assertIsInstance( download_call_kwargs['fileobj'], StdoutBytesWriter) self.assertEqual(download_call_kwargs['bucket'], self.bucket) self.assertEqual(download_call_kwargs['key'], self.key) self.assertEqual(download_call_kwargs['extra_args'], {}) ref_subscribers = [ DownloadStreamResultSubscriber ] actual_subscribers = download_call_kwargs['subscribers'] self.assertEqual(len(ref_subscribers), len(actual_subscribers)) for i, actual_subscriber in enumerate(actual_subscribers): self.assertIsInstance(actual_subscriber, ref_subscribers[i]) def test_dry_run(self): self.cli_params['dryrun'] = True self.transfer_request_submitter = DownloadStreamRequestSubmitter( self.transfer_manager, self.result_queue, self.cli_params) fileinfo = FileInfo( dest=self.filename, dest_type='local', operation_name='download', src=self.bucket + '/' + self.key, src_type='s3', compare_key=self.key) self.transfer_request_submitter.submit(fileinfo) result = self.result_queue.get() self.assertIsInstance(result, DryRunResult) self.assertEqual(result.transfer_type, 'download') self.assertEqual(result.src, 's3://' + self.bucket + '/' + self.key) self.assertEqual(result.dest, '-')
def test_dry_run(self): self.cli_params['dryrun'] = True self.transfer_request_submitter = DownloadStreamRequestSubmitter( self.transfer_manager, self.result_queue, self.cli_params) fileinfo = FileInfo(dest=self.filename, dest_type='local', operation_name='download', src=self.bucket + '/' + self.key, src_type='s3', compare_key=self.key) self.transfer_request_submitter.submit(fileinfo) result = self.result_queue.get() self.assertIsInstance(result, DryRunResult) self.assertEqual(result.transfer_type, 'download') self.assertEqual(result.src, 's3://' + self.bucket + '/' + self.key) self.assertEqual(result.dest, '-')
def test_dry_run(self): self.cli_params['dryrun'] = True self.transfer_request_submitter = DownloadStreamRequestSubmitter( self.transfer_manager, self.result_queue, self.cli_params) fileinfo = FileInfo( dest=self.filename, dest_type='local', operation_name='download', src=self.bucket + '/' + self.key, src_type='s3') self.transfer_request_submitter.submit(fileinfo) result = self.result_queue.get() self.assertIsInstance(result, DryRunResult) self.assertEqual(result.transfer_type, 'download') self.assertEqual(result.src, 's3://' + self.bucket + '/' + self.key) self.assertEqual(result.dest, '-')
def setUp(self): super(TestDownloadStreamRequestSubmitter, self).setUp() self.filename = '-' self.cli_params['is_stream'] = True self.transfer_request_submitter = DownloadStreamRequestSubmitter( self.transfer_manager, self.result_queue, self.cli_params)