From a770864d308242bfcfa8dadb210595785d8fa71f Mon Sep 17 00:00:00 2001 From: Ilya Alekseyev Date: Sat, 25 Jun 2011 02:42:27 +0400 Subject: tests --- nova/api/openstack/contrib/floating_ips.py | 14 +++++++---- .../api/openstack/contrib/test_floating_ips.py | 29 ++++++++++++++-------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/nova/api/openstack/contrib/floating_ips.py b/nova/api/openstack/contrib/floating_ips.py index c6bc85c61..95502a5c5 100644 --- a/nova/api/openstack/contrib/floating_ips.py +++ b/nova/api/openstack/contrib/floating_ips.py @@ -104,10 +104,10 @@ class FloatingIPController(object): "id": ip['id'], "floating_ip": ip['address']}} - def associate(self, req, id_ip, body): + def associate(self, req, id, body): """ /floating_ips/{id}/associate fixed ip in body """ context = req.environ['nova.context'] - floating_ip = self._get_ip_by_id(context, id_ip) + floating_ip = self._get_ip_by_id(context, id) fixed_ip = body['associate_address']['fixed_ip'] @@ -117,13 +117,17 @@ class FloatingIPController(object): except rpc.RemoteError: raise - return {'associated': [floating_ip, fixed_ip]} + return {'associated': + { + "floating_ip_id": id, + "floating_ip": floating_ip, + "fixed_ip": fixed_ip}} - def disassociate(self, req, id_ip, body): + def disassociate(self, req, id, body): """ POST /floating_ips/{id}/disassociate """ context = req.environ['nova.context'] - floating_ip = self._get_ip_by_id(context, id_ip) + floating_ip = self._get_ip_by_id(context, id) try: self.network_api.disassociate_floating_ip(context, floating_ip) diff --git a/nova/tests/api/openstack/contrib/test_floating_ips.py b/nova/tests/api/openstack/contrib/test_floating_ips.py index efdfdcf74..1f2012ec7 100644 --- a/nova/tests/api/openstack/contrib/test_floating_ips.py +++ b/nova/tests/api/openstack/contrib/test_floating_ips.py @@ -28,7 +28,7 @@ from nova.api.openstack.contrib.floating_ips import FloatingIPController from nova.api.openstack.contrib.floating_ips import _translate_floating_ip_view def network_api_get(self, context, id): - return {'id': id, 'address': '10.10.10.10'} + return {'id': 1, 'address': '10.10.10.10'} def network_api_list(self, context): @@ -47,7 +47,7 @@ def network_api_allocate(self, context): def network_api_release(self, context, address): pass -def network_api_associate(): +def network_api_associate(self, context,floating_ip, fixed_ip): pass @@ -97,12 +97,6 @@ class FloatingIpTest(test.TestCase): self._delete_floating_ip() super(FloatingIpTest, self).tearDown() - def test_get_ip_by_id(self): - ip = self.controller._get_ip_by_id(self.context, '10.10.10.10') - self.assertEqual(ip, '10.10.10.10') - ip = self.controller._get_ip_by_id(self.context, '1') - self.assertEqual(ip, '10.10.10.10') - def test_translate_floating_ip_view(self): floating_ip_address = self._create_floating_ip() floating_ip = db.floating_ip_get_by_address(self.context, @@ -154,15 +148,28 @@ class FloatingIpTest(test.TestCase): req.method = 'DELETE' res = req.get_response(fakes.wsgi_app()) self.assertEqual(res.status_int, 200) - ip = json.loads(res.body)['released'] + actual = json.loads(res.body)['released'] expected = { "id": 1, "floating_ip": '10.10.10.10' } - self.assertEqual(ip, expected) + self.assertEqual(actual, expected) def test_floating_ip_associate(self): - pass + body = dict(associate_address=dict(fixed_ip='1.2.3.4')) + req = webob.Request.blank('/v1.1/floating_ips/1/associate') + req.method = 'POST' + req.body = json.dumps(body) + req.headers["content-type"] = "application/json" + + res = req.get_response(fakes.wsgi_app()) + self.assertEqual(res.status_int, 200) + actual = json.loads(res.body)['associated'] + expected = { + "floating_ip_id": '1', + "floating_ip": "10.10.10.10", + "fixed_ip": "1.2.3.4"} + self.assertEqual(actual, expected) def test_floating_ip_disassociate(self): pass \ No newline at end of file -- cgit