Merge "Convert Floating IP tests to httpretty"

This commit is contained in:
Jenkins 2014-06-16 08:20:46 +00:00 committed by Gerrit Code Review
commit 2d0af6ed02
2 changed files with 71 additions and 18 deletions
novaclient/tests

@ -0,0 +1,52 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import httpretty
from novaclient.openstack.common import jsonutils
from novaclient.tests.fixture_data import base
class FloatingFixture(base.Fixture):
base_url = 'os-floating-ips'
def setUp(self):
super(FloatingFixture, self).setUp()
floating_ips = [{'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'}]
get_os_floating_ips = {'floating_ips': floating_ips}
httpretty.register_uri(httpretty.GET, self.url(),
body=jsonutils.dumps(get_os_floating_ips),
content_type='application/json')
for ip in floating_ips:
get_os_floating_ip = {'floating_ip': ip}
httpretty.register_uri(httpretty.GET, self.url(ip['id']),
body=jsonutils.dumps(get_os_floating_ip),
content_type='application/json')
httpretty.register_uri(httpretty.DELETE, self.url(ip['id']),
content_type='application/json',
status=204)
def post_os_floating_ips(request, url, headers):
body = jsonutils.loads(request.body.decode('utf-8'))
ip = floating_ips[0].copy()
ip['pool'] = body.get('pool')
ip = jsonutils.dumps({'floating_ip': ip})
return 200, headers, ip
httpretty.register_uri(httpretty.POST, self.url(),
body=post_os_floating_ips,
content_type='application/json')

@ -14,45 +14,46 @@
# 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
cs = fakes.FakeClient()
class FloatingIPsTest(utils.FixturedTestCase):
class FloatingIPsTest(utils.TestCase):
client_fixture_class = client.V1
data_fixture_class = data.FloatingFixture
def test_list_floating_ips(self):
fips = cs.floating_ips.list()
cs.assert_called('GET', '/os-floating-ips')
fips = self.cs.floating_ips.list()
self.assert_called('GET', '/os-floating-ips')
for fip in fips:
self.assertIsInstance(fip, floating_ips.FloatingIP)
def test_list_floating_ips_all_tenants(self):
fips = cs.floating_ips.list(all_tenants=True)
cs.assert_called('GET', '/os-floating-ips?all_tenants=1')
fips = self.cs.floating_ips.list(all_tenants=True)
self.assert_called('GET', '/os-floating-ips?all_tenants=1')
for fip in fips:
self.assertIsInstance(fip, floating_ips.FloatingIP)
def test_delete_floating_ip(self):
fl = cs.floating_ips.list()[0]
fl = self.cs.floating_ips.list()[0]
fl.delete()
cs.assert_called('DELETE', '/os-floating-ips/1')
cs.floating_ips.delete(1)
cs.assert_called('DELETE', '/os-floating-ips/1')
cs.floating_ips.delete(fl)
cs.assert_called('DELETE', '/os-floating-ips/1')
self.assert_called('DELETE', '/os-floating-ips/1')
self.cs.floating_ips.delete(1)
self.assert_called('DELETE', '/os-floating-ips/1')
self.cs.floating_ips.delete(fl)
self.assert_called('DELETE', '/os-floating-ips/1')
def test_create_floating_ip(self):
fl = cs.floating_ips.create()
cs.assert_called('POST', '/os-floating-ips')
fl = self.cs.floating_ips.create()
self.assert_called('POST', '/os-floating-ips')
self.assertIsNone(fl.pool)
self.assertIsInstance(fl, floating_ips.FloatingIP)
def test_create_floating_ip_with_pool(self):
fl = cs.floating_ips.create('foo')
cs.assert_called('POST', '/os-floating-ips')
fl = self.cs.floating_ips.create('nova')
self.assert_called('POST', '/os-floating-ips')
self.assertEqual(fl.pool, 'nova')
self.assertIsInstance(fl, floating_ips.FloatingIP)