Merge "Convert Floating IP tests to httpretty"
This commit is contained in:
commit
2d0af6ed02
novaclient/tests
52
novaclient/tests/fixture_data/floatingips.py
Normal file
52
novaclient/tests/fixture_data/floatingips.py
Normal file
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user