Skip to content

Commit

Permalink
Added test_cancel_after_upload_id to test_tasks
Browse files Browse the repository at this point in the history
This test creates an upload_task, sets the upload_id, and then cancels the upload.

At this point any call to wait_for_upload_id must raise an UploadCancelledError,
even if a valid upload_id is set on the MultipartUploadContext object.
  • Loading branch information
Javier Lopez committed Jul 4, 2014
1 parent 05ec58d commit a65b231
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions tests/unit/customizations/s3/test_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,26 @@ def test_can_cancel_tasks(self):
with self.assertRaises(UploadCancelledError):
self.context.wait_for_parts_to_finish()

def test_cancel_after_upload_id(self):
# We want have a thread waiting for the upload id.
upload_part_thread = threading.Thread(target=self.upload_part,
args=(1,))
self.start_thread(upload_part_thread)

# We announce the upload id.
self.create_upload('my_upload_id')
# The upload_part thread can now proceed,
# now, let's cancel this upload.
self.context.cancel_upload()

# The upload_part_thread should be finished.
self.join_threads()

# In a cancelled multipart upload task any subsequent
# call to wait_for_upload_id must raise an UploadCancelledError
with self.assertRaises(UploadCancelledError):
self.context.wait_for_upload_id()

def test_cancel_threads_waiting_for_completion(self):
# So we have a thread waiting for the entire upload to complete.
arbitrary_waiting_thread = threading.Thread(target=self.wait_for_upload_complete)
Expand Down

0 comments on commit a65b231

Please sign in to comment.