def test_run_for_ranged_download(self):
     self.transfer_config.multipart_chunksize = 2
     self.transfer_config.multipart_threshold = 4
     self.add_download_file_request(expected_size=4)
     self.add_shutdown()
     self.submitter.run()
     self.osutil.allocate.assert_called_with(self.temp_filename, 4)
     self.assert_submitted_get_object_jobs([
         GetObjectJob(
             transfer_id=self.transfer_id,
             bucket=self.bucket,
             key=self.key,
             temp_filename=self.temp_filename,
             offset=0,
             extra_args={'Range': 'bytes=0-1'},
             filename=self.filename,
         ),
         GetObjectJob(
             transfer_id=self.transfer_id,
             bucket=self.bucket,
             key=self.key,
             temp_filename=self.temp_filename,
             offset=2,
             extra_args={'Range': 'bytes=2-'},
             filename=self.filename,
         ),
     ])
 def test_run_with_extra_args(self):
     self.stubber.add_response(
         'head_object', {'ContentLength': 1},
         expected_params={
             'Bucket': self.bucket,
             'Key': self.key,
             'VersionId': 'versionid'
         }
     )
     self.add_download_file_request(
         extra_args={'VersionId': 'versionid'},
         expected_size=None
     )
     self.add_shutdown()
     self.submitter.run()
     self.stubber.assert_no_pending_responses()
     self.osutil.allocate.assert_called_with(self.temp_filename, 1)
     self.assert_submitted_get_object_jobs([
         GetObjectJob(
             transfer_id=self.transfer_id,
             bucket=self.bucket,
             key=self.key,
             temp_filename=self.temp_filename,
             offset=0,
             extra_args={'VersionId': 'versionid'},
             filename=self.filename,
         )
     ])
 def add_get_object_job(self, **override_kwargs):
     kwargs = {
         'transfer_id': self.transfer_id,
         'bucket': self.bucket,
         'key': self.key,
         'temp_filename': self.temp_filename,
         'extra_args': self.extra_args,
         'offset': self.offset,
         'filename': self.final_filename
     }
     kwargs.update(override_kwargs)
     self.queue.put(GetObjectJob(**kwargs))
 def test_run_for_non_ranged_download(self):
     self.add_download_file_request(expected_size=1)
     self.add_shutdown()
     self.submitter.run()
     self.osutil.allocate.assert_called_with(self.temp_filename, 1)
     self.assert_submitted_get_object_jobs([
         GetObjectJob(
             transfer_id=self.transfer_id,
             bucket=self.bucket,
             key=self.key,
             temp_filename=self.temp_filename,
             offset=0,
             extra_args={},
             filename=self.filename,
         )
     ])