Fix Response.is_slo to be True or False
Change-Id: Ie609a8697477c008df951f287c2098f787e23366
This commit is contained in:
parent
bf9329958d
commit
eaed441cbf
@ -18,6 +18,7 @@ from UserDict import DictMixin
|
|||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from swift.common import swob
|
from swift.common import swob
|
||||||
|
from swift.common.utils import config_true_value
|
||||||
|
|
||||||
from swift3.utils import snake_to_camel, sysmeta_prefix
|
from swift3.utils import snake_to_camel, sysmeta_prefix
|
||||||
from swift3.etree import Element, SubElement, tostring
|
from swift3.etree import Element, SubElement, tostring
|
||||||
@ -108,7 +109,7 @@ class Response(ResponseBase, swob.Response):
|
|||||||
headers[key] = val
|
headers[key] = val
|
||||||
elif _key == 'x-static-large-object':
|
elif _key == 'x-static-large-object':
|
||||||
# for delete slo
|
# for delete slo
|
||||||
self.is_slo = val
|
self.is_slo = config_true_value(val)
|
||||||
|
|
||||||
self.headers = headers
|
self.headers = headers
|
||||||
# Used for pure swift header handling at the request layer
|
# Used for pure swift header handling at the request layer
|
||||||
|
@ -93,7 +93,7 @@ class TestRequest(Swift3TestCase):
|
|||||||
@patch('swift3.request.S3AclRequest.authenticate', lambda x, y: None)
|
@patch('swift3.request.S3AclRequest.authenticate', lambda x, y: None)
|
||||||
def _test_get_response(self, method, container='bucket', obj=None,
|
def _test_get_response(self, method, container='bucket', obj=None,
|
||||||
permission=None, skip_check=False,
|
permission=None, skip_check=False,
|
||||||
req_klass=S3_Request):
|
req_klass=S3_Request, fake_swift_resp=None):
|
||||||
path = '/' + container + ('/' + obj if obj else '')
|
path = '/' + container + ('/' + obj if obj else '')
|
||||||
req = Request.blank(path,
|
req = Request.blank(path,
|
||||||
environ={'REQUEST_METHOD': method},
|
environ={'REQUEST_METHOD': method},
|
||||||
@ -105,7 +105,8 @@ class TestRequest(Swift3TestCase):
|
|||||||
with nested(patch('swift3.request.Request._get_response'),
|
with nested(patch('swift3.request.Request._get_response'),
|
||||||
patch('swift3.subresource.ACL.check_permission')) \
|
patch('swift3.subresource.ACL.check_permission')) \
|
||||||
as (mock_get_resp, m_check_permission):
|
as (mock_get_resp, m_check_permission):
|
||||||
mock_get_resp.return_value = FakeResponse(CONF.s3_acl)
|
mock_get_resp.return_value = fake_swift_resp \
|
||||||
|
or FakeResponse(CONF.s3_acl)
|
||||||
return mock_get_resp, m_check_permission,\
|
return mock_get_resp, m_check_permission,\
|
||||||
s3_req.get_response(self.swift3)
|
s3_req.get_response(self.swift3)
|
||||||
|
|
||||||
|
33
swift3/test/unit/test_response.py
Normal file
33
swift3/test/unit/test_response.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# Copyright (c) 2014 OpenStack Foundation
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
# implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from swift.common.swob import Response
|
||||||
|
from swift3.response import Response as S3Response
|
||||||
|
|
||||||
|
|
||||||
|
class TestRequest(unittest.TestCase):
|
||||||
|
def test_from_swift_resp_slo(self):
|
||||||
|
for expected, header_vals in \
|
||||||
|
((True, ('true', '1')), (False, ('false', 'ugahhh', None))):
|
||||||
|
for val in header_vals:
|
||||||
|
resp = Response(headers={'X-Static-Large-Object': val})
|
||||||
|
s3resp = S3Response.from_swift_resp(resp)
|
||||||
|
self.assertEqual(expected, s3resp.is_slo)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
Loading…
x
Reference in New Issue
Block a user