def test_basic_https_proxy_request(self):
     proxies = {'https': 'http://proxy.com'}
     session = URLLib3Session(proxies=proxies)
     self.request.url = 'https://example.com/'
     session.send(self.request.prepare())
     self.assert_proxy_manager_call(proxies['https'], proxy_headers={})
     self.assert_request_sent()
 def test_aws_connection_classes_are_used(self):
     session = URLLib3Session()
     # ensure the pool manager is using the correct classes
     http_class = self.pool_manager.pool_classes_by_scheme.get('http')
     self.assertIs(http_class, AWSHTTPConnectionPool)
     https_class = self.pool_manager.pool_classes_by_scheme.get('https')
     self.assertIs(https_class, AWSHTTPSConnectionPool)
    def test_chunked_encoding_is_set_with_header(self):
        session = URLLib3Session()
        self.request.headers['Transfer-Encoding'] = 'chunked'

        session.send(self.request.prepare())
        self.assert_request_sent(
            chunked=True,
            headers={'Transfer-Encoding': 'chunked'},
        )
 def test_basic_proxy_request_caches_manager(self):
     proxies = {'https': 'http://proxy.com'}
     session = URLLib3Session(proxies=proxies)
     self.request.url = 'https://example.com/'
     session.send(self.request.prepare())
     # assert we created the proxy manager
     self.assert_proxy_manager_call(proxies['https'], proxy_headers={})
     session.send(self.request.prepare())
     # assert that we did not create another proxy manager
     self.assertEqual(self.proxy_manager_fun.call_count, 1)
 def test_basic_https_proxy_with_client_cert(self):
     proxies = {'https': 'http://proxy.com'}
     session = URLLib3Session(proxies=proxies, client_cert='/some/cert')
     self.request.url = 'https://example.com/'
     session.send(self.request.prepare())
     self.assert_proxy_manager_call(
         proxies['https'],
         proxy_headers={},
         cert_file='/some/cert',
         key_file=None,
     )
     self.assert_request_sent()
 def test_session_forwards_socket_options_to_proxy_manager(self):
     proxies = {'http': 'http://proxy.com'}
     socket_options = [(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)]
     session = URLLib3Session(
         proxies=proxies,
         socket_options=socket_options,
     )
     session.send(self.request.prepare())
     self.assert_proxy_manager_call(
         proxies['http'],
         proxy_headers={},
         socket_options=socket_options,
     )
 def __init__(self,
              host,
              endpoint_prefix,
              event_emitter,
              response_parser_factory=None,
              http_session=None):
     self._endpoint_prefix = endpoint_prefix
     self._event_emitter = event_emitter
     self.host = host
     self._lock = threading.Lock()
     if response_parser_factory is None:
         response_parser_factory = parsers.ResponseParserFactory()
     self._response_parser_factory = response_parser_factory
     self.http_session = http_session
     if self.http_session is None:
         self.http_session = URLLib3Session()
 def make_request_with_error(self, error):
     self.connection.urlopen.side_effect = error
     session = URLLib3Session()
     session.send(self.request.prepare())
 def test_session_forwards_socket_options_to_pool_manager(self):
     socket_options = [(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)]
     URLLib3Session(socket_options=socket_options)
     self.assert_pool_manager_call(socket_options=socket_options)
 def test_proxy_request_ssl_context_is_explicit(self):
     proxies = {'http': 'http://proxy.com'}
     session = URLLib3Session(proxies=proxies)
     session.send(self.request.prepare())
     _, proxy_kwargs = self.proxy_manager_fun.call_args
     self.assertIsNotNone(proxy_kwargs.get('ssl_context'))
 def test_forwards_client_cert(self):
     URLLib3Session(client_cert='/some/cert')
     self.assert_pool_manager_call(cert_file='/some/cert', key_file=None)
 def test_basic_https_request(self):
     session = URLLib3Session()
     self.request.url = 'https://example.com/'
     session.send(self.request.prepare())
     self.assert_request_sent()
 def test_basic_streaming_request(self):
     session = URLLib3Session()
     self.request.stream_output = True
     session.send(self.request.prepare())
     self.assert_request_sent()
     self.response.stream.assert_not_called()
 def test_basic_request(self):
     session = URLLib3Session()
     session.send(self.request.prepare())
     self.assert_request_sent()
     self.response.stream.assert_called_once_with()
 def test_forwards_client_cert_and_key_tuple(self):
     cert = ('/some/cert', '/some/key')
     URLLib3Session(client_cert=cert)
     self.assert_pool_manager_call(cert_file=cert[0], key_file=cert[1])
    def test_chunked_encoding_is_not_set_without_header(self):
        session = URLLib3Session()

        session.send(self.request.prepare())
        self.assert_request_sent(chunked=False)
 def test_ssl_context_is_explicit(self):
     session = URLLib3Session()
     session.send(self.request.prepare())
     _, manager_kwargs = self.pool_manager_cls.call_args
     self.assertIsNotNone(manager_kwargs.get('ssl_context'))
 def test_forwards_max_pool_size(self):
     URLLib3Session(max_pool_connections=22)
     self.assert_pool_manager_call(maxsize=22)