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 import mock
from mox3 import mox from mox3 import mox
import requests import requests
from six.moves.urllib import parse as urlparse
import testtools import testtools
from keystoneclient.openstack.common import jsonutils from keystoneclient.openstack.common import jsonutils
@@ -69,8 +70,13 @@ class TestCase(testtools.TestCase):
elif body: elif body:
self.assertEqual(body, httpretty.last_request().body) self.assertEqual(body, httpretty.last_request().body)
def assertQueryStringIs(self, val): def assertQueryStringIs(self, qs=''):
self.assertEqual(httpretty.last_request().querystring, val) """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): def assertRequestHeaderEqual(self, name, val):
"""Verify that the last request made contains a header and its value """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) self.stub_url(httpretty.GET, ['tenants'], json=self.TEST_TENANTS)
tenant_list = self.client.tenants.list(limit=1) 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] [self.assertTrue(isinstance(t, tenants.Tenant)) for t in tenant_list]
@httpretty.activate @httpretty.activate
@@ -149,7 +149,7 @@ class TenantTests(utils.TestCase):
self.stub_url(httpretty.GET, ['tenants'], json=self.TEST_TENANTS) self.stub_url(httpretty.GET, ['tenants'], json=self.TEST_TENANTS)
tenant_list = self.client.tenants.list(marker=1) 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] [self.assertTrue(isinstance(t, tenants.Tenant)) for t in tenant_list]
@httpretty.activate @httpretty.activate
@@ -157,7 +157,7 @@ class TenantTests(utils.TestCase):
self.stub_url(httpretty.GET, ['tenants'], json=self.TEST_TENANTS) self.stub_url(httpretty.GET, ['tenants'], json=self.TEST_TENANTS)
tenant_list = self.client.tenants.list(limit=1, marker=1) 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] [self.assertTrue(isinstance(t, tenants.Tenant)) for t in tenant_list]
@httpretty.activate @httpretty.activate

View File

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