Merge "Fix list multi uploads response"
This commit is contained in:
commit
d430014083
|
@ -52,7 +52,8 @@ from swift3.controllers.base import Controller, bucket_operation, \
|
|||
object_operation
|
||||
from swift3.response import InvalidArgument, ErrorResponse, MalformedXML, \
|
||||
InvalidPart, BucketAlreadyExists, EntityTooSmall, InvalidPartOrder, \
|
||||
InvalidRequest, HTTPOk, HTTPNoContent, NoSuchKey, NoSuchUpload
|
||||
InvalidRequest, HTTPOk, HTTPNoContent, NoSuchKey, NoSuchUpload, \
|
||||
NoSuchBucket
|
||||
from swift3.exception import BadSwiftRequest
|
||||
from swift3.utils import LOGGER, unique_id, MULTIUPLOAD_SUFFIX
|
||||
from swift3.etree import Element, SubElement, fromstring, tostring, \
|
||||
|
@ -201,8 +202,12 @@ class UploadsController(Controller):
|
|||
query.update({'prefix': req.params['prefix']})
|
||||
|
||||
container = req.container_name + MULTIUPLOAD_SUFFIX
|
||||
resp = req.get_response(self.app, container=container, query=query)
|
||||
objects = json.loads(resp.body)
|
||||
try:
|
||||
resp = req.get_response(self.app, container=container, query=query)
|
||||
objects = json.loads(resp.body)
|
||||
except NoSuchBucket:
|
||||
# Assume NoSuchBucket as no uploads
|
||||
objects = []
|
||||
|
||||
def object_to_upload(object_info):
|
||||
obj, upid = object_info['name'].rsplit('/', 1)
|
||||
|
|
|
@ -210,6 +210,27 @@ class TestSwift3MultiUpload(Swift3TestCase):
|
|||
self.assertEquals(u.find('StorageClass').text, 'STANDARD')
|
||||
self.assertEquals(status.split()[0], '200')
|
||||
|
||||
@s3acl
|
||||
def test_bucket_multipart_uploads_GET_without_segment_bucket(self):
|
||||
segment_bucket = '/v1/AUTH_test/bucket+segments'
|
||||
self.swift.register('GET', segment_bucket, swob.HTTPNotFound, {}, '')
|
||||
|
||||
req = Request.blank('/bucket?uploads',
|
||||
environ={'REQUEST_METHOD': 'GET'},
|
||||
headers={'Authorization': 'AWS test:tester:hmac'})
|
||||
|
||||
status, haeaders, body = self.call_swift3(req)
|
||||
|
||||
self.assertEquals(status.split()[0], '200')
|
||||
elem = fromstring(body, 'ListMultipartUploadsResult')
|
||||
self.assertEquals(elem.find('Bucket').text, 'bucket')
|
||||
self.assertEquals(elem.find('KeyMarker').text, None)
|
||||
self.assertEquals(elem.find('UploadIdMarker').text, None)
|
||||
self.assertEquals(elem.find('NextUploadIdMarker').text, None)
|
||||
self.assertEquals(elem.find('MaxUploads').text, '1000')
|
||||
self.assertEquals(elem.find('IsTruncated').text, 'false')
|
||||
self.assertEquals(len(elem.findall('Upload')), 0)
|
||||
|
||||
@s3acl
|
||||
def test_bucket_multipart_uploads_GET_encoding_type_error(self):
|
||||
query = 'encoding-type=xml'
|
||||
|
|
Loading…
Reference in New Issue