Merge "Convert Hypervisor tests to httpretty"
This commit is contained in:
commit
e84c4e5d95
novaclient/tests
@ -11,6 +11,7 @@
|
||||
# under the License.
|
||||
|
||||
import fixtures
|
||||
from six.moves.urllib import parse
|
||||
|
||||
COMPUTE_URL = 'http://compute.host'
|
||||
|
||||
@ -23,10 +24,15 @@ class Fixture(fixtures.Fixture):
|
||||
super(Fixture, self).__init__()
|
||||
self.compute_url = compute_url
|
||||
|
||||
def url(self, *args):
|
||||
def url(self, *args, **kwargs):
|
||||
url_args = [self.compute_url]
|
||||
|
||||
if self.base_url:
|
||||
url_args.append(self.base_url)
|
||||
|
||||
return '/'.join(str(a).strip('/') for a in tuple(url_args) + args)
|
||||
url = '/'.join(str(a).strip('/') for a in tuple(url_args) + args)
|
||||
|
||||
if kwargs:
|
||||
url += '?%s' % parse.urlencode(kwargs, doseq=True)
|
||||
|
||||
return url
|
||||
|
210
novaclient/tests/fixture_data/hypervisors.py
Normal file
210
novaclient/tests/fixture_data/hypervisors.py
Normal file
@ -0,0 +1,210 @@
|
||||
# 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 V1(base.Fixture):
|
||||
|
||||
base_url = 'os-hypervisors'
|
||||
|
||||
def setUp(self):
|
||||
super(V1, self).setUp()
|
||||
|
||||
get_os_hypervisors = {
|
||||
'hypervisors': [
|
||||
{'id': 1234, 'hypervisor_hostname': 'hyper1'},
|
||||
{'id': 5678, 'hypervisor_hostname': 'hyper2'},
|
||||
]
|
||||
}
|
||||
|
||||
httpretty.register_uri(httpretty.GET, self.url(),
|
||||
body=jsonutils.dumps(get_os_hypervisors),
|
||||
content_type='application/json')
|
||||
|
||||
get_os_hypervisors_detail = {
|
||||
'hypervisors': [
|
||||
{
|
||||
'id': 1234,
|
||||
'service': {'id': 1, 'host': 'compute1'},
|
||||
'vcpus': 4,
|
||||
'memory_mb': 10 * 1024,
|
||||
'local_gb': 250,
|
||||
'vcpus_used': 2,
|
||||
'memory_mb_used': 5 * 1024,
|
||||
'local_gb_used': 125,
|
||||
'hypervisor_type': 'xen',
|
||||
'hypervisor_version': 3,
|
||||
'hypervisor_hostname': 'hyper1',
|
||||
'free_ram_mb': 5 * 1024,
|
||||
'free_disk_gb': 125,
|
||||
'current_workload': 2,
|
||||
'running_vms': 2,
|
||||
'cpu_info': 'cpu_info',
|
||||
'disk_available_least': 100
|
||||
},
|
||||
{
|
||||
'id': 2,
|
||||
'service': {'id': 2, 'host': 'compute2'},
|
||||
'vcpus': 4,
|
||||
'memory_mb': 10 * 1024,
|
||||
'local_gb': 250,
|
||||
'vcpus_used': 2,
|
||||
'memory_mb_used': 5 * 1024,
|
||||
'local_gb_used': 125,
|
||||
'hypervisor_type': 'xen',
|
||||
'hypervisor_version': 3,
|
||||
'hypervisor_hostname': 'hyper2',
|
||||
'free_ram_mb': 5 * 1024,
|
||||
'free_disk_gb': 125,
|
||||
'current_workload': 2,
|
||||
'running_vms': 2,
|
||||
'cpu_info': 'cpu_info',
|
||||
'disk_available_least': 100
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
httpretty.register_uri(httpretty.GET, self.url('detail'),
|
||||
body=jsonutils.dumps(get_os_hypervisors_detail),
|
||||
content_type='application/json')
|
||||
|
||||
get_os_hypervisors_stats = {
|
||||
'hypervisor_statistics': {
|
||||
'count': 2,
|
||||
'vcpus': 8,
|
||||
'memory_mb': 20 * 1024,
|
||||
'local_gb': 500,
|
||||
'vcpus_used': 4,
|
||||
'memory_mb_used': 10 * 1024,
|
||||
'local_gb_used': 250,
|
||||
'free_ram_mb': 10 * 1024,
|
||||
'free_disk_gb': 250,
|
||||
'current_workload': 4,
|
||||
'running_vms': 4,
|
||||
'disk_available_least': 200,
|
||||
}
|
||||
}
|
||||
|
||||
httpretty.register_uri(httpretty.GET, self.url('statistics'),
|
||||
body=jsonutils.dumps(get_os_hypervisors_stats),
|
||||
content_type='application/json')
|
||||
|
||||
get_os_hypervisors_search = {
|
||||
'hypervisors': [
|
||||
{'id': 1234, 'hypervisor_hostname': 'hyper1'},
|
||||
{'id': 5678, 'hypervisor_hostname': 'hyper2'}
|
||||
]
|
||||
}
|
||||
|
||||
httpretty.register_uri(httpretty.GET, self.url('hyper', 'search'),
|
||||
body=jsonutils.dumps(get_os_hypervisors_search),
|
||||
content_type='application/json')
|
||||
|
||||
get_hyper_server = {
|
||||
'hypervisors': [
|
||||
{
|
||||
'id': 1234,
|
||||
'hypervisor_hostname': 'hyper1',
|
||||
'servers': [
|
||||
{'name': 'inst1', 'uuid': 'uuid1'},
|
||||
{'name': 'inst2', 'uuid': 'uuid2'}
|
||||
]
|
||||
},
|
||||
{
|
||||
'id': 5678,
|
||||
'hypervisor_hostname': 'hyper2',
|
||||
'servers': [
|
||||
{'name': 'inst3', 'uuid': 'uuid3'},
|
||||
{'name': 'inst4', 'uuid': 'uuid4'}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
httpretty.register_uri(httpretty.GET, self.url('hyper', 'servers'),
|
||||
body=jsonutils.dumps(get_hyper_server),
|
||||
content_type='application/json')
|
||||
|
||||
get_os_hypervisors_1234 = {
|
||||
'hypervisor': {
|
||||
'id': 1234,
|
||||
'service': {'id': 1, 'host': 'compute1'},
|
||||
'vcpus': 4,
|
||||
'memory_mb': 10 * 1024,
|
||||
'local_gb': 250,
|
||||
'vcpus_used': 2,
|
||||
'memory_mb_used': 5 * 1024,
|
||||
'local_gb_used': 125,
|
||||
'hypervisor_type': 'xen',
|
||||
'hypervisor_version': 3,
|
||||
'hypervisor_hostname': 'hyper1',
|
||||
'free_ram_mb': 5 * 1024,
|
||||
'free_disk_gb': 125,
|
||||
'current_workload': 2,
|
||||
'running_vms': 2,
|
||||
'cpu_info': 'cpu_info',
|
||||
'disk_available_least': 100
|
||||
}
|
||||
}
|
||||
|
||||
httpretty.register_uri(httpretty.GET, self.url(1234),
|
||||
body=jsonutils.dumps(get_os_hypervisors_1234),
|
||||
content_type='application/json')
|
||||
|
||||
get_os_hypervisors_uptime = {
|
||||
'hypervisor': {
|
||||
'id': 1234,
|
||||
'hypervisor_hostname': 'hyper1',
|
||||
'uptime': 'fake uptime'
|
||||
}
|
||||
}
|
||||
|
||||
httpretty.register_uri(httpretty.GET, self.url(1234, 'uptime'),
|
||||
body=jsonutils.dumps(get_os_hypervisors_uptime),
|
||||
content_type='application/json')
|
||||
|
||||
|
||||
class V3(V1):
|
||||
|
||||
def setUp(self):
|
||||
super(V3, self).setUp()
|
||||
|
||||
get_os_hypervisors_search = {
|
||||
'hypervisors': [
|
||||
{'id': 1234, 'hypervisor_hostname': 'hyper1'},
|
||||
{'id': 5678, 'hypervisor_hostname': 'hyper2'}
|
||||
]
|
||||
}
|
||||
|
||||
httpretty.register_uri(httpretty.GET,
|
||||
self.url('search', query='hyper'),
|
||||
body=jsonutils.dumps(get_os_hypervisors_search),
|
||||
content_type='application/json')
|
||||
|
||||
get_1234_servers = {
|
||||
'hypervisor': {
|
||||
'id': 1234,
|
||||
'hypervisor_hostname': 'hyper1',
|
||||
'servers': [
|
||||
{'name': 'inst1', 'id': 'uuid1'},
|
||||
{'name': 'inst2', 'id': 'uuid2'}
|
||||
]
|
||||
},
|
||||
}
|
||||
|
||||
httpretty.register_uri(httpretty.GET, self.url(1234, 'servers'),
|
||||
body=jsonutils.dumps(get_1234_servers),
|
||||
content_type='application/json')
|
@ -13,17 +13,15 @@
|
||||
# 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 hypervisors as data
|
||||
from novaclient.tests import utils
|
||||
from novaclient.tests.v1_1 import fakes
|
||||
|
||||
|
||||
class HypervisorsTest(utils.TestCase):
|
||||
def setUp(self):
|
||||
super(HypervisorsTest, self).setUp()
|
||||
self.cs = self._get_fake_client()
|
||||
class HypervisorsTest(utils.FixturedTestCase):
|
||||
|
||||
def _get_fake_client(self):
|
||||
return fakes.FakeClient()
|
||||
client_fixture_class = client.V1
|
||||
data_fixture_class = data.V1
|
||||
|
||||
def compare_to_expected(self, expected, hyper):
|
||||
for key, value in expected.items():
|
||||
@ -36,7 +34,7 @@ class HypervisorsTest(utils.TestCase):
|
||||
]
|
||||
|
||||
result = self.cs.hypervisors.list(False)
|
||||
self.cs.assert_called('GET', '/os-hypervisors')
|
||||
self.assert_called('GET', '/os-hypervisors')
|
||||
|
||||
for idx, hyper in enumerate(result):
|
||||
self.compare_to_expected(expected[idx], hyper)
|
||||
@ -79,7 +77,7 @@ class HypervisorsTest(utils.TestCase):
|
||||
disk_available_least=100)]
|
||||
|
||||
result = self.cs.hypervisors.list()
|
||||
self.cs.assert_called('GET', '/os-hypervisors/detail')
|
||||
self.assert_called('GET', '/os-hypervisors/detail')
|
||||
|
||||
for idx, hyper in enumerate(result):
|
||||
self.compare_to_expected(expected[idx], hyper)
|
||||
@ -91,7 +89,7 @@ class HypervisorsTest(utils.TestCase):
|
||||
]
|
||||
|
||||
result = self.cs.hypervisors.search('hyper')
|
||||
self.cs.assert_called('GET', '/os-hypervisors/hyper/search')
|
||||
self.assert_called('GET', '/os-hypervisors/hyper/search')
|
||||
|
||||
for idx, hyper in enumerate(result):
|
||||
self.compare_to_expected(expected[idx], hyper)
|
||||
@ -111,7 +109,7 @@ class HypervisorsTest(utils.TestCase):
|
||||
]
|
||||
|
||||
result = self.cs.hypervisors.search('hyper', True)
|
||||
self.cs.assert_called('GET', '/os-hypervisors/hyper/servers')
|
||||
self.assert_called('GET', '/os-hypervisors/hyper/servers')
|
||||
|
||||
for idx, hyper in enumerate(result):
|
||||
self.compare_to_expected(expected[idx], hyper)
|
||||
@ -137,7 +135,7 @@ class HypervisorsTest(utils.TestCase):
|
||||
disk_available_least=100)
|
||||
|
||||
result = self.cs.hypervisors.get(1234)
|
||||
self.cs.assert_called('GET', '/os-hypervisors/1234')
|
||||
self.assert_called('GET', '/os-hypervisors/1234')
|
||||
|
||||
self.compare_to_expected(expected, result)
|
||||
|
||||
@ -148,7 +146,7 @@ class HypervisorsTest(utils.TestCase):
|
||||
uptime="fake uptime")
|
||||
|
||||
result = self.cs.hypervisors.uptime(1234)
|
||||
self.cs.assert_called('GET', '/os-hypervisors/1234/uptime')
|
||||
self.assert_called('GET', '/os-hypervisors/1234/uptime')
|
||||
|
||||
self.compare_to_expected(expected, result)
|
||||
|
||||
@ -169,6 +167,6 @@ class HypervisorsTest(utils.TestCase):
|
||||
)
|
||||
|
||||
result = self.cs.hypervisors.statistics()
|
||||
self.cs.assert_called('GET', '/os-hypervisors/statistics')
|
||||
self.assert_called('GET', '/os-hypervisors/statistics')
|
||||
|
||||
self.compare_to_expected(expected, result)
|
||||
|
@ -13,17 +13,15 @@
|
||||
# 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 hypervisors as data
|
||||
from novaclient.tests.v1_1 import test_hypervisors
|
||||
from novaclient.tests.v3 import fakes
|
||||
|
||||
|
||||
class HypervisorsTest(test_hypervisors.HypervisorsTest):
|
||||
def setUp(self):
|
||||
super(HypervisorsTest, self).setUp()
|
||||
self.cs = self._get_fake_client()
|
||||
|
||||
def _get_fake_client(self):
|
||||
return fakes.FakeClient()
|
||||
client_fixture_class = client.V3
|
||||
data_fixture_class = data.V3
|
||||
|
||||
def test_hypervisor_search(self):
|
||||
expected = [
|
||||
@ -32,7 +30,7 @@ class HypervisorsTest(test_hypervisors.HypervisorsTest):
|
||||
]
|
||||
|
||||
result = self.cs.hypervisors.search('hyper')
|
||||
self.cs.assert_called('GET', '/os-hypervisors/search?query=hyper')
|
||||
self.assert_called('GET', '/os-hypervisors/search?query=hyper')
|
||||
|
||||
for idx, hyper in enumerate(result):
|
||||
self.compare_to_expected(expected[idx], hyper)
|
||||
@ -45,6 +43,6 @@ class HypervisorsTest(test_hypervisors.HypervisorsTest):
|
||||
dict(name='inst2', id='uuid2')])
|
||||
|
||||
result = self.cs.hypervisors.servers('1234')
|
||||
self.cs.assert_called('GET', '/os-hypervisors/1234/servers')
|
||||
self.assert_called('GET', '/os-hypervisors/1234/servers')
|
||||
|
||||
self.compare_to_expected(expected, result)
|
||||
|
Loading…
x
Reference in New Issue
Block a user