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)
|
def abort_multipart_upload(bucket_name, object_name, upload_id)
|
||||||
verify_mock_bucket_exists(bucket_name)
|
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
|
response = Excon::Response.new
|
||||||
if upload_info
|
if upload_info
|
||||||
response.status = 204
|
response.status = 204
|
||||||
|
|
|
@ -54,17 +54,17 @@ module Fog
|
||||||
|
|
||||||
def complete_multipart_upload(bucket_name, object_name, upload_id, parts)
|
def complete_multipart_upload(bucket_name, object_name, upload_id, parts)
|
||||||
bucket = verify_mock_bucket_exists(bucket_name)
|
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
|
body = parts.map { |pid| upload_info[:parts][pid.to_i] }.join
|
||||||
object = store_mock_object(bucket, object_name, body, upload_info[:options])
|
object = store_mock_object(bucket, object_name, body, upload_info[:options])
|
||||||
|
|
||||||
response = Excon::Response.new
|
response = Excon::Response.new
|
||||||
response.status = 200
|
response.status = 200
|
||||||
response.body = {
|
response.body = {
|
||||||
'Content-Length' => object['Content-Length'],
|
'Location' => "http://#{bucket_name}.s3.amazonaws.com/#{object_name}",
|
||||||
'Content-Type' => object['Content-Type'],
|
'Bucket' => bucket_name,
|
||||||
'ETag' => object['ETag'],
|
'Key' => object_name,
|
||||||
'Last-Modified' => object['Last-Modified'],
|
'ETag' => object['ETag'],
|
||||||
}
|
}
|
||||||
response.headers['x-amz-version-id'] = object['VersionId'] if object['VersionId'] != 'null'
|
response.headers['x-amz-version-id'] = object['VersionId'] if object['VersionId'] != 'null'
|
||||||
response
|
response
|
||||||
|
|
|
@ -30,8 +30,12 @@ module Fog
|
||||||
raise(Excon::Errors.status_error({:expects => 200}, response))
|
raise(Excon::Errors.status_error({:expects => 200}, response))
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_upload_info(bucket_name, upload_id)
|
def get_upload_info(bucket_name, upload_id, delete = false)
|
||||||
upload_info = self.data[:multipart_uploads][bucket_name][upload_id]
|
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
|
if !upload_info
|
||||||
response = Excon::Response.new
|
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
|
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
|
data = Fog::Storage[:aws].initiate_multipart_upload(@directory.identity, 'fog_multipart_upload').body
|
||||||
@upload_id = data['UploadId']
|
@upload_id = data['UploadId']
|
||||||
data
|
data
|
||||||
|
@ -49,7 +48,6 @@ Shindo.tests('Fog::Storage[:aws] | multipart upload requests', ["aws"]) do
|
||||||
@parts = []
|
@parts = []
|
||||||
|
|
||||||
tests("#upload_part('#{@directory.identity}', 'fog_multipart_upload', '#{@upload_id}', 1, ('x' * 6 * 1024 * 1024))").succeeds do
|
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))
|
data = Fog::Storage[:aws].upload_part(@directory.identity, 'fog_multipart_upload', @upload_id, 1, ('x' * 6 * 1024 * 1024))
|
||||||
@parts << data.headers['ETag']
|
@parts << data.headers['ETag']
|
||||||
end
|
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
|
Fog::Storage[:aws].list_parts(@directory.identity, 'fog_multipart_upload', @upload_id).body
|
||||||
end
|
end
|
||||||
|
|
||||||
if !Fog.mocking?
|
@parts << Fog::Storage[:aws].upload_part(@directory.identity, 'fog_multipart_upload', @upload_id, 2, ('x' * 4 * 1024 * 1024)).headers['ETag']
|
||||||
@parts << Fog::Storage[:aws].upload_part(@directory.identity, 'fog_multipart_upload', @upload_id, 2, ('x' * 4 * 1024 * 1024)).headers['ETag']
|
|
||||||
end
|
|
||||||
|
|
||||||
@complete_multipart_upload_format = {
|
@complete_multipart_upload_format = {
|
||||||
'Bucket' => String,
|
'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
|
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
|
Fog::Storage[:aws].complete_multipart_upload(@directory.identity, 'fog_multipart_upload', @upload_id, @parts).body
|
||||||
end
|
end
|
||||||
|
|
||||||
tests("#get_object('#{@directory.identity}', 'fog_multipart_upload').body").succeeds do
|
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)
|
Fog::Storage[:aws].get_object(@directory.identity, 'fog_multipart_upload').body == ('x' * 10 * 1024 * 1024)
|
||||||
end
|
end
|
||||||
|
|
||||||
if !Fog.mocking?
|
@directory.files.new(:key => 'fog_multipart_upload').destroy
|
||||||
@directory.files.new(:key => 'fog_multipart_upload').destroy
|
|
||||||
end
|
|
||||||
|
|
||||||
if !Fog.mocking?
|
@upload_id = Fog::Storage[:aws].initiate_multipart_upload(@directory.identity, 'fog_multipart_abort').body['UploadId']
|
||||||
@upload_id = Fog::Storage[:aws].initiate_multipart_upload(@directory.identity, 'fog_multipart_abort').body['UploadId']
|
|
||||||
end
|
|
||||||
|
|
||||||
tests("#abort_multipart_upload('#{@directory.identity}', 'fog_multipart_abort', '#{@upload_id}')").succeeds do
|
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)
|
Fog::Storage[:aws].abort_multipart_upload(@directory.identity, 'fog_multipart_abort', @upload_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue