1
0
Fork 0
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:
Brian Palmer 2014-01-06 10:41:47 -07:00
parent 34d12576b5
commit c42d870faa
4 changed files with 15 additions and 22 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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