Merge "Convert Hypervisor tests to httpretty"

This commit is contained in:
Jenkins 2014-06-28 18:18:00 +00:00 committed by Gerrit Code Review
commit e84c4e5d95
4 changed files with 236 additions and 24 deletions

@ -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

@ -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)