From 858a83023a95ce8625102daa7b2c673ea5be4572 Mon Sep 17 00:00:00 2001 From: Jamie Lennox Date: Fri, 9 May 2014 16:28:17 +1000 Subject: [PATCH] Convert Floating IP bulk tests to httpretty Change-Id: I4b81963ab6a9924c5f2262f49a42baa56326964d blueprint: httpretty-testing --- novaclient/tests/fixture_data/floatingips.py | 49 +++++++++++++++++++ .../tests/v1_1/test_floating_ips_bulk.py | 31 ++++++------ 2 files changed, 65 insertions(+), 15 deletions(-) diff --git a/novaclient/tests/fixture_data/floatingips.py b/novaclient/tests/fixture_data/floatingips.py index 20acde705..a74b82913 100644 --- a/novaclient/tests/fixture_data/floatingips.py +++ b/novaclient/tests/fixture_data/floatingips.py @@ -147,3 +147,52 @@ class DNSFixture(base.Fixture): httpretty.register_uri(httpretty.PUT, self.url('testdomain'), body=put_os_floating_ip_dns_testdomain) + + +class BulkFixture(base.Fixture): + + base_url = 'os-floating-ips-bulk' + + def setUp(self): + super(BulkFixture, self).setUp() + + get_os_floating_ips_bulk = { + 'floating_ip_info': [ + {'id': 1, 'fixed_ip': '10.0.0.1', 'ip': '11.0.0.1'}, + {'id': 2, 'fixed_ip': '10.0.0.2', 'ip': '11.0.0.2'}, + ] + } + httpretty.register_uri(httpretty.GET, self.url(), + body=jsonutils.dumps(get_os_floating_ips_bulk), + content_type='application/json') + httpretty.register_uri(httpretty.GET, self.url('testHost'), + body=jsonutils.dumps(get_os_floating_ips_bulk), + content_type='application/json') + + def put_os_floating_ips_bulk_delete(request, url, headers): + body = jsonutils.loads(request.body.decode('utf-8')) + ip_range = body.get('ip_range') + data = {'floating_ips_bulk_delete': ip_range} + return 200, headers, jsonutils.dumps(data) + + httpretty.register_uri(httpretty.PUT, self.url('delete'), + body=put_os_floating_ips_bulk_delete, + content_type='application/json') + + def post_os_floating_ips_bulk(request, url, headers): + body = jsonutils.loads(request.body.decode('utf-8')) + params = body.get('floating_ips_bulk_create') + pool = params.get('pool', 'defaultPool') + interface = params.get('interface', 'defaultInterface') + data = { + 'floating_ips_bulk_create': { + 'ip_range': '192.168.1.0/30', + 'pool': pool, + 'interface': interface + } + } + return 200, headers, jsonutils.dumps(data) + + httpretty.register_uri(httpretty.POST, self.url(), + body=post_os_floating_ips_bulk, + content_type='application/json') diff --git a/novaclient/tests/v1_1/test_floating_ips_bulk.py b/novaclient/tests/v1_1/test_floating_ips_bulk.py index 01fb83725..dd4f823c7 100644 --- a/novaclient/tests/v1_1/test_floating_ips_bulk.py +++ b/novaclient/tests/v1_1/test_floating_ips_bulk.py @@ -13,42 +13,43 @@ # License for the specific language governing permissions and limitations # under the License. +from novaclient.tests.fixture_data import client +from novaclient.tests.fixture_data import floatingips as data from novaclient.tests import utils -from novaclient.tests.v1_1 import fakes from novaclient.v1_1 import floating_ips_bulk -cs = fakes.FakeClient() +class FloatingIPsBulkTest(utils.FixturedTestCase): - -class FloatingIPsBulkTest(utils.TestCase): + client_fixture_class = client.V1 + data_fixture_class = data.BulkFixture def test_list_floating_ips_bulk(self): - fl = cs.floating_ips_bulk.list() - cs.assert_called('GET', '/os-floating-ips-bulk') + fl = self.cs.floating_ips_bulk.list() + self.assert_called('GET', '/os-floating-ips-bulk') [self.assertIsInstance(f, floating_ips_bulk.FloatingIP) for f in fl] def test_list_floating_ips_bulk_host_filter(self): - fl = cs.floating_ips_bulk.list('testHost') - cs.assert_called('GET', '/os-floating-ips-bulk/testHost') + fl = self.cs.floating_ips_bulk.list('testHost') + self.assert_called('GET', '/os-floating-ips-bulk/testHost') [self.assertIsInstance(f, floating_ips_bulk.FloatingIP) for f in fl] def test_create_floating_ips_bulk(self): - fl = cs.floating_ips_bulk.create('192.168.1.0/30') + fl = self.cs.floating_ips_bulk.create('192.168.1.0/30') body = {'floating_ips_bulk_create': {'ip_range': '192.168.1.0/30'}} - cs.assert_called('POST', '/os-floating-ips-bulk', body) + self.assert_called('POST', '/os-floating-ips-bulk', body) self.assertEqual(fl.ip_range, body['floating_ips_bulk_create']['ip_range']) def test_create_floating_ips_bulk_with_pool_and_host(self): - fl = cs.floating_ips_bulk.create('192.168.1.0/30', 'poolTest', - 'interfaceTest') + fl = self.cs.floating_ips_bulk.create('192.168.1.0/30', 'poolTest', + 'interfaceTest') body = {'floating_ips_bulk_create': {'ip_range': '192.168.1.0/30', 'pool': 'poolTest', 'interface': 'interfaceTest'}} - cs.assert_called('POST', '/os-floating-ips-bulk', body) + self.assert_called('POST', '/os-floating-ips-bulk', body) self.assertEqual(fl.ip_range, body['floating_ips_bulk_create']['ip_range']) self.assertEqual(fl.pool, @@ -57,7 +58,7 @@ class FloatingIPsBulkTest(utils.TestCase): body['floating_ips_bulk_create']['interface']) def test_delete_floating_ips_bulk(self): - fl = cs.floating_ips_bulk.delete('192.168.1.0/30') + fl = self.cs.floating_ips_bulk.delete('192.168.1.0/30') body = {'ip_range': '192.168.1.0/30'} - cs.assert_called('PUT', '/os-floating-ips-bulk/delete', body) + self.assert_called('PUT', '/os-floating-ips-bulk/delete', body) self.assertEqual(fl.floating_ips_bulk_delete, body['ip_range'])