mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
enable the relevant tests for multipart mocks
The list tests are still pending, as I didn't implement the mocks for those.
This commit is contained in:
parent
34d12576b5
commit
c42d870faa
4 changed files with 15 additions and 22 deletions
|
@ -30,7 +30,7 @@ module Fog
|
|||
|
||||
def abort_multipart_upload(bucket_name, object_name, upload_id)
|
||||
verify_mock_bucket_exists(bucket_name)
|
||||
upload_info = self.data[:multipart_uploads][bucket_name].delete(upload_id)
|
||||
upload_info = get_upload_info(bucket_name, upload_id, true)
|
||||
response = Excon::Response.new
|
||||
if upload_info
|
||||
response.status = 204
|
||||
|
|
|
@ -54,17 +54,17 @@ module Fog
|
|||
|
||||
def complete_multipart_upload(bucket_name, object_name, upload_id, parts)
|
||||
bucket = verify_mock_bucket_exists(bucket_name)
|
||||
upload_info = get_upload_info(bucket_name, upload_id)
|
||||
upload_info = get_upload_info(bucket_name, upload_id, true)
|
||||
body = parts.map { |pid| upload_info[:parts][pid.to_i] }.join
|
||||
object = store_mock_object(bucket, object_name, body, upload_info[:options])
|
||||
|
||||
response = Excon::Response.new
|
||||
response.status = 200
|
||||
response.body = {
|
||||
'Content-Length' => object['Content-Length'],
|
||||
'Content-Type' => object['Content-Type'],
|
||||
'ETag' => object['ETag'],
|
||||
'Last-Modified' => object['Last-Modified'],
|
||||
'Location' => "http://#{bucket_name}.s3.amazonaws.com/#{object_name}",
|
||||
'Bucket' => bucket_name,
|
||||
'Key' => object_name,
|
||||
'ETag' => object['ETag'],
|
||||
}
|
||||
response.headers['x-amz-version-id'] = object['VersionId'] if object['VersionId'] != 'null'
|
||||
response
|
||||
|
|
|
@ -30,8 +30,12 @@ module Fog
|
|||
raise(Excon::Errors.status_error({:expects => 200}, response))
|
||||
end
|
||||
|
||||
def get_upload_info(bucket_name, upload_id)
|
||||
upload_info = self.data[:multipart_uploads][bucket_name][upload_id]
|
||||
def get_upload_info(bucket_name, upload_id, delete = false)
|
||||
if delete
|
||||
upload_info = self.data[:multipart_uploads][bucket_name].delete(upload_id)
|
||||
else
|
||||
upload_info = self.data[:multipart_uploads][bucket_name][upload_id]
|
||||
end
|
||||
|
||||
if !upload_info
|
||||
response = Excon::Response.new
|
||||
|
|
|
@ -11,7 +11,6 @@ Shindo.tests('Fog::Storage[:aws] | multipart upload requests', ["aws"]) do
|
|||
}
|
||||
|
||||
tests("#initiate_multipart_upload('#{@directory.identity}')", 'fog_multipart_upload').formats(@initiate_multipart_upload_format) do
|
||||
pending if Fog.mocking?
|
||||
data = Fog::Storage[:aws].initiate_multipart_upload(@directory.identity, 'fog_multipart_upload').body
|
||||
@upload_id = data['UploadId']
|
||||
data
|
||||
|
@ -49,7 +48,6 @@ Shindo.tests('Fog::Storage[:aws] | multipart upload requests', ["aws"]) do
|
|||
@parts = []
|
||||
|
||||
tests("#upload_part('#{@directory.identity}', 'fog_multipart_upload', '#{@upload_id}', 1, ('x' * 6 * 1024 * 1024))").succeeds do
|
||||
pending if Fog.mocking?
|
||||
data = Fog::Storage[:aws].upload_part(@directory.identity, 'fog_multipart_upload', @upload_id, 1, ('x' * 6 * 1024 * 1024))
|
||||
@parts << data.headers['ETag']
|
||||
end
|
||||
|
@ -80,9 +78,7 @@ Shindo.tests('Fog::Storage[:aws] | multipart upload requests', ["aws"]) do
|
|||
Fog::Storage[:aws].list_parts(@directory.identity, 'fog_multipart_upload', @upload_id).body
|
||||
end
|
||||
|
||||
if !Fog.mocking?
|
||||
@parts << Fog::Storage[:aws].upload_part(@directory.identity, 'fog_multipart_upload', @upload_id, 2, ('x' * 4 * 1024 * 1024)).headers['ETag']
|
||||
end
|
||||
@parts << Fog::Storage[:aws].upload_part(@directory.identity, 'fog_multipart_upload', @upload_id, 2, ('x' * 4 * 1024 * 1024)).headers['ETag']
|
||||
|
||||
@complete_multipart_upload_format = {
|
||||
'Bucket' => String,
|
||||
|
@ -92,25 +88,18 @@ Shindo.tests('Fog::Storage[:aws] | multipart upload requests', ["aws"]) do
|
|||
}
|
||||
|
||||
tests("#complete_multipart_upload('#{@directory.identity}', 'fog_multipart_upload', '#{@upload_id}', #{@parts.inspect})").formats(@complete_multipart_upload_format) do
|
||||
pending if Fog.mocking?
|
||||
Fog::Storage[:aws].complete_multipart_upload(@directory.identity, 'fog_multipart_upload', @upload_id, @parts).body
|
||||
end
|
||||
|
||||
tests("#get_object('#{@directory.identity}', 'fog_multipart_upload').body").succeeds do
|
||||
pending if Fog.mocking?
|
||||
Fog::Storage[:aws].get_object(@directory.identity, 'fog_multipart_upload').body == ('x' * 10 * 1024 * 1024)
|
||||
end
|
||||
|
||||
if !Fog.mocking?
|
||||
@directory.files.new(:key => 'fog_multipart_upload').destroy
|
||||
end
|
||||
@directory.files.new(:key => 'fog_multipart_upload').destroy
|
||||
|
||||
if !Fog.mocking?
|
||||
@upload_id = Fog::Storage[:aws].initiate_multipart_upload(@directory.identity, 'fog_multipart_abort').body['UploadId']
|
||||
end
|
||||
@upload_id = Fog::Storage[:aws].initiate_multipart_upload(@directory.identity, 'fog_multipart_abort').body['UploadId']
|
||||
|
||||
tests("#abort_multipart_upload('#{@directory.identity}', 'fog_multipart_abort', '#{@upload_id}')").succeeds do
|
||||
pending if Fog.mocking?
|
||||
Fog::Storage[:aws].abort_multipart_upload(@directory.identity, 'fog_multipart_abort', @upload_id)
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue