Make assertQueryStringIs usage simpler

As requested in https://review.openstack.org/#/c/65728/, this "fixes"
assertQueryStringIs so it takes a query string, rather than a dict
of lists, which is a less convenient format in many tests.

Change-Id: Ib4c49ba71f7e12bb5bcb4dfde77974f3418c7854
This commit is contained in:
Steven Hardy
2014-01-13 09:52:52 +00:00
parent 5d6c42dde8
commit 1619e9a445
3 changed files with 13 additions and 7 deletions

View File

@@ -19,6 +19,7 @@ import httpretty
import mock
from mox3 import mox
import requests
from six.moves.urllib import parse as urlparse
import testtools
from keystoneclient.openstack.common import jsonutils
@@ -69,8 +70,13 @@ class TestCase(testtools.TestCase):
elif body:
self.assertEqual(body, httpretty.last_request().body)
def assertQueryStringIs(self, val):
self.assertEqual(httpretty.last_request().querystring, val)
def assertQueryStringIs(self, qs=''):
"""Verify the QueryString matches what is expected.
The qs parameter should be of the format \'foo=bar&abc=xyz\'
"""
expected = urlparse.parse_qs(qs)
self.assertEqual(expected, httpretty.last_request().querystring)
def assertRequestHeaderEqual(self, name, val):
"""Verify that the last request made contains a header and its value

View File

@@ -141,7 +141,7 @@ class TenantTests(utils.TestCase):
self.stub_url(httpretty.GET, ['tenants'], json=self.TEST_TENANTS)
tenant_list = self.client.tenants.list(limit=1)
self.assertQueryStringIs({'limit': ['1']})
self.assertQueryStringIs('limit=1')
[self.assertTrue(isinstance(t, tenants.Tenant)) for t in tenant_list]
@httpretty.activate
@@ -149,7 +149,7 @@ class TenantTests(utils.TestCase):
self.stub_url(httpretty.GET, ['tenants'], json=self.TEST_TENANTS)
tenant_list = self.client.tenants.list(marker=1)
self.assertQueryStringIs({'marker': ['1']})
self.assertQueryStringIs('marker=1')
[self.assertTrue(isinstance(t, tenants.Tenant)) for t in tenant_list]
@httpretty.activate
@@ -157,7 +157,7 @@ class TenantTests(utils.TestCase):
self.stub_url(httpretty.GET, ['tenants'], json=self.TEST_TENANTS)
tenant_list = self.client.tenants.list(limit=1, marker=1)
self.assertQueryStringIs({'marker': ['1'], 'limit': ['1']})
self.assertQueryStringIs('marker=1&limit=1')
[self.assertTrue(isinstance(t, tenants.Tenant)) for t in tenant_list]
@httpretty.activate

View File

@@ -258,9 +258,9 @@ class CrudTests(object):
'Expected different %s' % attr)
if hasattr(ref, 'name'):
self.assertQueryStringIs({'name': ref['name']})
self.assertQueryStringIs('name=%s' % ref['name'])
else:
self.assertQueryStringIs({})
self.assertQueryStringIs('')
@httpretty.activate
def test_update(self, ref=None, req_ref=None):