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

View File

@@ -72,6 +72,15 @@ class TestCase(testtools.TestCase):
def assertQueryStringIs(self, 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):