From 1619e9a44546c48bd1a2362c556753ab77871e61 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Mon, 13 Jan 2014 09:52:52 +0000 Subject: [PATCH] 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 --- keystoneclient/tests/utils.py | 10 ++++++++-- keystoneclient/tests/v2_0/test_tenants.py | 6 +++--- keystoneclient/tests/v3/utils.py | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/keystoneclient/tests/utils.py b/keystoneclient/tests/utils.py index aea810a3a..ec5467189 100644 --- a/keystoneclient/tests/utils.py +++ b/keystoneclient/tests/utils.py @@ -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 diff --git a/keystoneclient/tests/v2_0/test_tenants.py b/keystoneclient/tests/v2_0/test_tenants.py index 95859d482..be25514cc 100644 --- a/keystoneclient/tests/v2_0/test_tenants.py +++ b/keystoneclient/tests/v2_0/test_tenants.py @@ -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 diff --git a/keystoneclient/tests/v3/utils.py b/keystoneclient/tests/v3/utils.py index 4bad4294b..6b180e4f7 100644 --- a/keystoneclient/tests/v3/utils.py +++ b/keystoneclient/tests/v3/utils.py @@ -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):