Testing new version of decorator.
This commit is contained in:
parent
d3df810065
commit
fde721bed7
123 changed files with 2740 additions and 1114 deletions
|
|
@ -1,3 +1,4 @@
|
|||
from __future__ import unicode_literals
|
||||
from .models import s3_backend
|
||||
mock_s3 = s3_backend.decorator
|
||||
mock_s3_deprecated = s3_backend.deprecated_decorator
|
||||
|
|
@ -25,7 +25,7 @@ class FakeKey(object):
|
|||
self.value = value
|
||||
self.last_modified = datetime.datetime.utcnow()
|
||||
self.acl = get_canned_acl('private')
|
||||
self._storage_class = storage
|
||||
self._storage_class = storage if storage else "STANDARD"
|
||||
self._metadata = {}
|
||||
self._expiry = None
|
||||
self._etag = etag
|
||||
|
|
@ -92,6 +92,7 @@ class FakeKey(object):
|
|||
r = {
|
||||
'etag': self.etag,
|
||||
'last-modified': self.last_modified_RFC1123,
|
||||
'content-length': str(len(self.value)),
|
||||
}
|
||||
if self._storage_class != 'STANDARD':
|
||||
r['x-amz-storage-class'] = self._storage_class
|
||||
|
|
@ -100,7 +101,7 @@ class FakeKey(object):
|
|||
r['x-amz-restore'] = rhdr.format(self.expiry_date)
|
||||
|
||||
if self._is_versioned:
|
||||
r['x-amz-version-id'] = self._version_id
|
||||
r['x-amz-version-id'] = str(self._version_id)
|
||||
|
||||
return r
|
||||
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ class ResponseObject(_TemplateEnvironmentMixin):
|
|||
|
||||
def subdomain_based_buckets(self, request):
|
||||
host = request.headers.get('host', request.headers.get('Host'))
|
||||
if not host:
|
||||
host = urlparse(request.url).netloc
|
||||
|
||||
if not host or host.startswith("localhost"):
|
||||
# For localhost, default to path-based buckets
|
||||
|
|
@ -130,6 +132,8 @@ class ResponseObject(_TemplateEnvironmentMixin):
|
|||
else:
|
||||
# Flask server
|
||||
body = request.data
|
||||
if body is None:
|
||||
body = ''
|
||||
body = body.decode('utf-8')
|
||||
|
||||
if method == 'HEAD':
|
||||
|
|
@ -334,7 +338,8 @@ class ResponseObject(_TemplateEnvironmentMixin):
|
|||
return 409, headers, template.render(bucket=removed_bucket)
|
||||
|
||||
def _bucket_response_post(self, request, body, bucket_name, headers):
|
||||
if self.is_delete_keys(request, request.path, bucket_name):
|
||||
path = request.path if hasattr(request, 'path') else request.path_url
|
||||
if self.is_delete_keys(request, path, bucket_name):
|
||||
return self._bucket_response_delete_keys(request, body, bucket_name, headers)
|
||||
|
||||
# POST to bucket-url should create file from form
|
||||
|
|
@ -344,7 +349,7 @@ class ResponseObject(_TemplateEnvironmentMixin):
|
|||
else:
|
||||
# HTTPretty, build new form object
|
||||
form = {}
|
||||
for kv in request.body.decode('utf-8').split('&'):
|
||||
for kv in body.decode('utf-8').split('&'):
|
||||
k, v = kv.split('=')
|
||||
form[k] = v
|
||||
|
||||
|
|
@ -428,9 +433,13 @@ class ResponseObject(_TemplateEnvironmentMixin):
|
|||
if hasattr(request, 'body'):
|
||||
# Boto
|
||||
body = request.body
|
||||
if hasattr(body, 'read'):
|
||||
body = body.read()
|
||||
else:
|
||||
# Flask server
|
||||
body = request.data
|
||||
if body is None:
|
||||
body = b''
|
||||
|
||||
if method == 'GET':
|
||||
return self._key_response_get(bucket_name, query, key_name, headers)
|
||||
|
|
@ -546,7 +555,7 @@ class ResponseObject(_TemplateEnvironmentMixin):
|
|||
if key:
|
||||
headers.update(key.metadata)
|
||||
headers.update(key.response_dict)
|
||||
return 200, headers, key.value
|
||||
return 200, headers, ""
|
||||
else:
|
||||
return 404, headers, ""
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue