예제 #1
0
    def test_to_swift_req_subrequest_proxy_access_log(self):
        container = 'bucket'
        obj = 'obj'
        method = 'GET'

        # force_swift_request_proxy_log is True
        req = Request.blank('/%s/%s' % (container, obj),
                            environ={
                                'REQUEST_METHOD': method,
                                'swift.proxy_access_log_made': True
                            },
                            headers={
                                'Authorization': 'OSS test:tester:hmac',
                                'Date': self.get_date_header()
                            })
        with nested(patch.object(Request, 'get_response'),
                    patch.object(Request, 'remote_user', 'authorized'),
                    patch('oss2swift.cfg.CONF.force_swift_request_proxy_log',
                    True)) \
                as (m_swift_resp, m_remote_user, m_cfg):

            m_swift_resp.return_value = FakeSwiftResponse()
            oss_req = Oss_Request(req.environ, MagicMock())
            sw_req = oss_req.to_swift_req(method, container, obj)
            self.assertFalse(sw_req.environ['swift.proxy_access_log_made'])

        # force_swift_request_proxy_log is False
        req = Request.blank('/%s/%s' % (container, obj),
                            environ={
                                'REQUEST_METHOD': method,
                                'swift.proxy_access_log_made': True
                            },
                            headers={
                                'Authorization': 'OSS test:tester:hmac',
                                'Date': self.get_date_header()
                            })
        with nested(patch.object(Request, 'get_response'),
                    patch.object(Request, 'remote_user', 'authorized')) \
                as (m_swift_resp, m_remote_user):

            m_swift_resp.return_value = FakeSwiftResponse()
            oss_req = Oss_Request(req.environ, MagicMock())
            sw_req = oss_req.to_swift_req(method, container, obj)
            self.assertTrue(sw_req.environ['swift.proxy_access_log_made'])
예제 #2
0
    def test_to_swift_req_Authorization_not_exist_in_swreq_headers(self):
        container = 'bucket'
        obj = 'obj'
        method = 'GET'
        req = Request.blank('/%s/%s' % (container, obj),
                            environ={'REQUEST_METHOD': method},
                            headers={
                                'Authorization': 'OSS test:tester:hmac',
                                'Date': self.get_date_header()
                            })
        with nested(patch.object(Request, 'get_response'),
                    patch.object(Request, 'remote_user', 'authorized')) \
                as (m_swift_resp, m_remote_user):

            m_swift_resp.return_value = FakeSwiftResponse()
            oss_req = Oss_Request(req.environ, MagicMock())
            sw_req = oss_req.to_swift_req(method, container, obj)
            self.assertIn('HTTP_AUTHORIZATION', sw_req.environ)
            self.assertIn('Authorization', sw_req.headers)