From fa20e7f6850a4793f8fb18400263269c24eda2ed Mon Sep 17 00:00:00 2001
From: Tristan Cacqueray <tristan.cacqueray@enovance.com>
Date: Tue, 18 Feb 2014 18:11:58 +0100
Subject: [PATCH] Makes use of requests.Session

This allows better connection pooling and may improve performances.

Change-Id: I69e986b7387dd3ac281731b8355a3eec34a537f8
---
 swiftclient/client.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/swiftclient/client.py b/swiftclient/client.py
index 27664614..675fe2ef 100644
--- a/swiftclient/client.py
+++ b/swiftclient/client.py
@@ -166,6 +166,7 @@ class HTTPConnection:
         self.host = self.parsed_url.netloc
         self.port = self.parsed_url.port
         self.requests_args = {}
+        self.request_session = requests.Session()
         if self.parsed_url.scheme not in ('http', 'https'):
             raise ClientException("Unsupported scheme")
         self.requests_args['verify'] = not insecure
@@ -190,7 +191,7 @@ class HTTPConnection:
 
     def _request(self, *arg, **kwarg):
         """ Final wrapper before requests call, to be patched in tests """
-        return requests.request(*arg, **kwarg)
+        return self.request_session.request(*arg, **kwarg)
 
     def request(self, method, full_path, data=None, headers=None, files=None):
         """ Encode url and header, then call requests.request """