Merge "Add support for setting Accept-Language header"

This commit is contained in:
Jenkins
2015-10-14 15:25:03 +00:00
committed by Gerrit Code Review
4 changed files with 30 additions and 0 deletions

View File

@@ -125,6 +125,7 @@ class HTTPClient(_BaseHTTPClient):
self.endpoint = endpoint
self.identity_headers = kwargs.get('identity_headers')
self.auth_token = kwargs.get('token')
self.language_header = kwargs.get('language_header')
if self.identity_headers:
if self.identity_headers.get('X-Auth-Token'):
self.auth_token = self.identity_headers.get('X-Auth-Token')
@@ -136,6 +137,9 @@ class HTTPClient(_BaseHTTPClient):
if self.auth_token:
self.session.headers["X-Auth-Token"] = self.auth_token
if self.language_header:
self.session.headers["Accept-Language"] = self.language_header
self.timeout = float(kwargs.get('timeout', 600))
if self.endpoint.startswith("https"):

View File

@@ -137,6 +137,28 @@ class TestClient(testtools.TestCase):
for k, v in six.iteritems(identity_headers):
self.assertEqual(v, headers[k])
def test_language_header_passed(self):
kwargs = {'language_header': 'nb_NO'}
http_client = http.HTTPClient(self.endpoint, **kwargs)
path = '/v2/images/my-image'
self.mock.get(self.endpoint + path)
http_client.get(path)
headers = self.mock.last_request.headers
self.assertEqual(kwargs['language_header'], headers['Accept-Language'])
def test_language_header_not_passed_no_language(self):
kwargs = {}
http_client = http.HTTPClient(self.endpoint, **kwargs)
path = '/v2/images/my-image'
self.mock.get(self.endpoint + path)
http_client.get(path)
headers = self.mock.last_request.headers
self.assertTrue('Accept-Language' not in headers)
def test_connection_timeout(self):
"""Should receive an InvalidEndpoint if connection timeout."""
def cb(request, context):

View File

@@ -27,6 +27,8 @@ class Client(object):
:param string token: Token for authentication.
:param integer timeout: Allows customization of the timeout for client
http requests. (optional)
:param string language_header: Set Accept-Language header to be sent in
requests to glance.
"""
def __init__(self, endpoint=None, **kwargs):

View File

@@ -32,6 +32,8 @@ class Client(object):
:param string token: Token for authentication.
:param integer timeout: Allows customization of the timeout for client
http requests. (optional)
:param string language_header: Set Accept-Language header to be sent in
requests to glance.
"""
def __init__(self, endpoint=None, **kwargs):