Add AssertRequestHeaderEqual test helper and make use of it

This will be a fairly common pattern and so should be a helper of its
own.

Change-Id: Ic06add6dfe40c7d3ab88dfdd99a9087fdebd9b67
This commit is contained in:
Jamie Lennox
2013-09-30 10:36:03 +10:00
parent e40713f546
commit 4ad2d581d1
2 changed files with 18 additions and 17 deletions

View File

@@ -16,7 +16,6 @@
import httpretty import httpretty
import six import six
import testtools
from testtools import matchers from testtools import matchers
from keystoneclient import exceptions from keystoneclient import exceptions
@@ -72,11 +71,8 @@ class ClientTest(utils.TestCase):
self.assertEqual(httpretty.last_request().method, 'GET') self.assertEqual(httpretty.last_request().method, 'GET')
self.assertEqual(httpretty.last_request().path, '/hi') self.assertEqual(httpretty.last_request().path, '/hi')
req_headers = httpretty.last_request().headers self.assertRequestHeaderEqual('X-Auth-Token', 'token')
self.assertRequestHeaderEqual('User-Agent', httpclient.USER_AGENT)
self.assertEqual(req_headers.getheader('X-Auth-Token'), 'token')
self.assertEqual(req_headers.getheader('User-Agent'),
httpclient.USER_AGENT)
# Automatic JSON parsing # Automatic JSON parsing
self.assertEqual(body, {"hi": "there"}) self.assertEqual(body, {"hi": "there"})
@@ -118,13 +114,9 @@ class ClientTest(utils.TestCase):
self.assertEqual(httpretty.last_request().method, 'POST') self.assertEqual(httpretty.last_request().method, 'POST')
self.assertEqual(httpretty.last_request().body, '[1, 2, 3]') self.assertEqual(httpretty.last_request().body, '[1, 2, 3]')
req_headers = httpretty.last_request().headers self.assertRequestHeaderEqual('X-Auth-Token', 'token')
self.assertRequestHeaderEqual('Content-Type', 'application/json')
self.assertEqual(req_headers.getheader('X-Auth-Token'), 'token') self.assertRequestHeaderEqual('User-Agent', httpclient.USER_AGENT)
self.assertEqual(req_headers.getheader('Content-Type'),
'application/json')
self.assertEqual(req_headers.getheader('User-Agent'),
httpclient.USER_AGENT)
@httpretty.activate @httpretty.activate
def test_forwarded_for(self): def test_forwarded_for(self):
@@ -136,8 +128,8 @@ class ClientTest(utils.TestCase):
self.stub_url(httpretty.GET) self.stub_url(httpretty.GET)
cl.request(self.TEST_URL, 'GET') cl.request(self.TEST_URL, 'GET')
self.assertEqual(httpretty.last_request().headers['Forwarded'], forwarded = "for=%s;by=%s" % (ORIGINAL_IP, httpclient.USER_AGENT)
"for=%s;by=%s" % (ORIGINAL_IP, httpclient.USER_AGENT)) self.assertRequestHeaderEqual('Forwarded', forwarded)
def test_client_deprecated(self): def test_client_deprecated(self):
# Can resolve symbols from the keystoneclient.client module. # Can resolve symbols from the keystoneclient.client module.
@@ -153,7 +145,7 @@ class ClientTest(utils.TestCase):
client.HTTPClient client.HTTPClient
class BasicRequestTests(testtools.TestCase): class BasicRequestTests(utils.TestCase):
url = 'http://keystone.test.com/' url = 'http://keystone.test.com/'
@@ -196,7 +188,7 @@ class BasicRequestTests(testtools.TestCase):
self.request(headers=headers) self.request(headers=headers)
for k, v in six.iteritems(headers): for k, v in six.iteritems(headers):
self.assertEqual(httpretty.last_request().headers[k], v) self.assertRequestHeaderEqual(k, v)
for header in six.iteritems(headers): for header in six.iteritems(headers):
self.assertThat(self.logger.debug_log, self.assertThat(self.logger.debug_log,

View File

@@ -72,6 +72,15 @@ class TestCase(testtools.TestCase):
def assertQueryStringIs(self, val): def assertQueryStringIs(self, val):
self.assertEqual(httpretty.last_request().querystring, val) self.assertEqual(httpretty.last_request().querystring, val)
def assertRequestHeaderEqual(self, name, val):
"""Verify that the last request made contains a header and its value
The request must have already been made and httpretty must have been
activated for the request.
"""
headers = httpretty.last_request().headers
self.assertEqual(headers.getheader(name), val)
if tuple(sys.version_info)[0:2] < (2, 7): if tuple(sys.version_info)[0:2] < (2, 7):