summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorTushar Patil <tushar.vitthal.patil@gmail.com>2011-08-10 14:16:13 -0700
committerTushar Patil <tushar.vitthal.patil@gmail.com>2011-08-10 14:16:13 -0700
commit4f26dad3e25dcd3a48528e94035c63db9d23efbf (patch)
tree25d90fc9fa09a8086137f8b7beddb6f2336fc4e4 /nova/tests
parentf73b6dc8e90b763da1fe86496fc6fd6a80b99f0a (diff)
parente78499c51b1cec93c0bdaadbcb78e71bf66d473d (diff)
Fixed broken unit testcases
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/api/openstack/contrib/test_keypairs.py99
-rw-r--r--nova/tests/api/openstack/test_extensions.py5
-rw-r--r--nova/tests/api/openstack/test_limits.py5
-rw-r--r--nova/tests/scheduler/test_scheduler.py24
-rw-r--r--nova/tests/test_auth.py7
-rw-r--r--nova/tests/test_compute.py9
-rw-r--r--nova/tests/test_instance_types_extra_specs.py2
-rw-r--r--nova/tests/test_libvirt.py5
-rw-r--r--nova/tests/test_xenapi.py18
9 files changed, 153 insertions, 21 deletions
diff --git a/nova/tests/api/openstack/contrib/test_keypairs.py b/nova/tests/api/openstack/contrib/test_keypairs.py
new file mode 100644
index 000000000..c9dc34d65
--- /dev/null
+++ b/nova/tests/api/openstack/contrib/test_keypairs.py
@@ -0,0 +1,99 @@
+# Copyright 2011 Eldar Nugaev
+# All Rights Reserved.
+#
+# 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 json
+import webob
+
+from nova import context
+from nova import db
+from nova import test
+from nova.api.openstack.contrib.keypairs import KeypairController
+from nova.tests.api.openstack import fakes
+
+
+def fake_keypair(name):
+ return {'public_key': 'FAKE_KEY',
+ 'fingerprint': 'FAKE_FINGERPRINT',
+ 'name': name}
+
+def db_key_pair_get_all_by_user(self, user_id):
+ return [fake_keypair('FAKE')]
+
+
+def db_key_pair_create(self, keypair):
+ pass
+
+
+def db_key_pair_destroy(context, user_id, name):
+ if not (user_id and name):
+ raise Exception()
+
+
+class KeypairsTest(test.TestCase):
+
+ def setUp(self):
+ super(KeypairsTest, self).setUp()
+ self.controller = KeypairController()
+ fakes.stub_out_networking(self.stubs)
+ fakes.stub_out_rate_limiting(self.stubs)
+ self.stubs.Set(db, "key_pair_get_all_by_user",
+ db_key_pair_get_all_by_user)
+ self.stubs.Set(db, "key_pair_create",
+ db_key_pair_create)
+ self.stubs.Set(db, "key_pair_destroy",
+ db_key_pair_destroy)
+ self.context = context.get_admin_context()
+
+ def test_keypair_list(self):
+ req = webob.Request.blank('/v1.1/os-keypairs')
+ res = req.get_response(fakes.wsgi_app())
+ self.assertEqual(res.status_int, 200)
+ res_dict = json.loads(res.body)
+ response = {'keypairs': [{'keypair': fake_keypair('FAKE')}]}
+ self.assertEqual(res_dict, response)
+
+ def test_keypair_create(self):
+ body = {'keypair': {'name': 'create_test'}}
+ req = webob.Request.blank('/v1.1/os-keypairs')
+ 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)
+ res_dict = json.loads(res.body)
+ self.assertTrue(len(res_dict['keypair']['fingerprint']) > 0)
+ self.assertTrue(len(res_dict['keypair']['private_key']) > 0)
+
+ def test_keypair_import(self):
+ body = {'keypair': {'name': 'create_test',
+ 'public_key': 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBYIznAx9D7118Q1VKGpXy2HDiKyUTM8XcUuhQpo0srqb9rboUp4a9NmCwpWpeElDLuva707GOUnfaBAvHBwsRXyxHJjRaI6YQj2oLJwqvaSaWUbyT1vtryRqy6J3TecN0WINY71f4uymiMZP0wby4bKBcYnac8KiCIlvkEl0ETjkOGUq8OyWRmn7ljj5SESEUdBP0JnuTFKddWTU/wD6wydeJaUhBTqOlHn0kX1GyqoNTE1UEhcM5ZRWgfUZfTjVyDF2kGj3vJLCJtJ8LoGcj7YaN4uPg1rBle+izwE/tLonRrds+cev8p6krSSrxWOwBbHkXa6OciiJDvkRzJXzf'}}
+ req = webob.Request.blank('/v1.1/os-keypairs')
+ 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)
+ # FIXME(ja): sholud we check that public_key was sent to create?
+ res_dict = json.loads(res.body)
+ self.assertTrue(len(res_dict['keypair']['fingerprint']) > 0)
+ self.assertFalse('private_key' in res_dict['keypair'])
+
+ def test_keypair_delete(self):
+ req = webob.Request.blank('/v1.1/os-keypairs/FAKE')
+ req.method = 'DELETE'
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(fakes.wsgi_app())
+ self.assertEqual(res.status_int, 202)
+
diff --git a/nova/tests/api/openstack/test_extensions.py b/nova/tests/api/openstack/test_extensions.py
index a1ed72e4a..ea8fe68a7 100644
--- a/nova/tests/api/openstack/test_extensions.py
+++ b/nova/tests/api/openstack/test_extensions.py
@@ -97,7 +97,8 @@ class ExtensionControllerTest(test.TestCase):
names = [x['name'] for x in data['extensions']]
names.sort()
self.assertEqual(names, ["FlavorExtraSpecs", "Floating_ips",
- "Fox In Socks", "Hosts", "Multinic", "SecurityGroups", "Volumes"])
+ "Fox In Socks", "Hosts", "Keypairs", "Multinic", "SecurityGroups",
+ "Volumes"])
# Make sure that at least Fox in Sox is correct.
(fox_ext,) = [
@@ -144,7 +145,7 @@ class ExtensionControllerTest(test.TestCase):
# Make sure we have all the extensions.
exts = root.findall('{0}extension'.format(NS))
- self.assertEqual(len(exts), 7)
+ self.assertEqual(len(exts), 8)
# Make sure that at least Fox in Sox is correct.
(fox_ext,) = [x for x in exts if x.get('alias') == 'FOXNSOX']
diff --git a/nova/tests/api/openstack/test_limits.py b/nova/tests/api/openstack/test_limits.py
index 6c3d531e3..1dc3c3a17 100644
--- a/nova/tests/api/openstack/test_limits.py
+++ b/nova/tests/api/openstack/test_limits.py
@@ -819,12 +819,15 @@ class FakeHttplibConnection(object):
self.app = app
self.host = host
- def request(self, method, path, body="", headers={}):
+ def request(self, method, path, body="", headers=None):
"""
Requests made via this connection actually get translated and routed
into our WSGI app, we then wait for the response and turn it back into
an `httplib.HTTPResponse`.
"""
+ if not headers:
+ headers = {}
+
req = webob.Request.blank(path)
req.method = method
req.headers = headers
diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py
index 330dab5e5..7a26fd1bb 100644
--- a/nova/tests/scheduler/test_scheduler.py
+++ b/nova/tests/scheduler/test_scheduler.py
@@ -303,7 +303,7 @@ class SimpleDriverTestCase(test.TestCase):
db.compute_node_create(self.context, dic)
return db.service_get(self.context, s_ref['id'])
- def test_doesnt_report_disabled_hosts_as_up(self):
+ def test_doesnt_report_disabled_hosts_as_up_no_queue(self):
"""Ensures driver doesn't find hosts before they are enabled"""
# NOTE(vish): constructing service without create method
# because we are going to use it without queue
@@ -326,7 +326,7 @@ class SimpleDriverTestCase(test.TestCase):
compute1.kill()
compute2.kill()
- def test_reports_enabled_hosts_as_up(self):
+ def test_reports_enabled_hosts_as_up_no_queue(self):
"""Ensures driver can find the hosts that are up"""
# NOTE(vish): constructing service without create method
# because we are going to use it without queue
@@ -345,7 +345,7 @@ class SimpleDriverTestCase(test.TestCase):
compute1.kill()
compute2.kill()
- def test_least_busy_host_gets_instance(self):
+ def test_least_busy_host_gets_instance_no_queue(self):
"""Ensures the host with less cores gets the next one"""
compute1 = service.Service('host1',
'nova-compute',
@@ -368,7 +368,7 @@ class SimpleDriverTestCase(test.TestCase):
compute1.kill()
compute2.kill()
- def test_specific_host_gets_instance(self):
+ def test_specific_host_gets_instance_no_queue(self):
"""Ensures if you set availability_zone it launches on that zone"""
compute1 = service.Service('host1',
'nova-compute',
@@ -391,7 +391,7 @@ class SimpleDriverTestCase(test.TestCase):
compute1.kill()
compute2.kill()
- def test_wont_sechedule_if_specified_host_is_down(self):
+ def test_wont_sechedule_if_specified_host_is_down_no_queue(self):
compute1 = service.Service('host1',
'nova-compute',
'compute',
@@ -410,7 +410,7 @@ class SimpleDriverTestCase(test.TestCase):
db.instance_destroy(self.context, instance_id2)
compute1.kill()
- def test_will_schedule_on_disabled_host_if_specified(self):
+ def test_will_schedule_on_disabled_host_if_specified_no_queue(self):
compute1 = service.Service('host1',
'nova-compute',
'compute',
@@ -425,7 +425,7 @@ class SimpleDriverTestCase(test.TestCase):
db.instance_destroy(self.context, instance_id2)
compute1.kill()
- def test_too_many_cores(self):
+ def test_too_many_cores_no_queue(self):
"""Ensures we don't go over max cores"""
compute1 = service.Service('host1',
'nova-compute',
@@ -458,7 +458,7 @@ class SimpleDriverTestCase(test.TestCase):
compute1.kill()
compute2.kill()
- def test_least_busy_host_gets_volume(self):
+ def test_least_busy_host_gets_volume_no_queue(self):
"""Ensures the host with less gigabytes gets the next one"""
volume1 = service.Service('host1',
'nova-volume',
@@ -479,7 +479,7 @@ class SimpleDriverTestCase(test.TestCase):
volume1.delete_volume(self.context, volume_id1)
db.volume_destroy(self.context, volume_id2)
- def test_doesnt_report_disabled_hosts_as_up(self):
+ def test_doesnt_report_disabled_hosts_as_up2(self):
"""Ensures driver doesn't find hosts before they are enabled"""
compute1 = self.start_service('compute', host='host1')
compute2 = self.start_service('compute', host='host2')
@@ -992,7 +992,7 @@ class ZoneRedirectTest(test.TestCase):
decorator = FakeRerouteCompute("foo", id_to_return=FAKE_UUID_NOT_FOUND)
try:
result = decorator(go_boom)(None, None, 1)
- self.assertFail(_("Should have rerouted."))
+ self.fail(_("Should have rerouted."))
except api.RedirectResult, e:
self.assertEquals(e.results['magic'], 'found me')
@@ -1080,10 +1080,10 @@ class DynamicNovaClientTest(test.TestCase):
class FakeZonesProxy(object):
- def do_something(*args, **kwargs):
+ def do_something(self, *args, **kwargs):
return 42
- def raises_exception(*args, **kwargs):
+ def raises_exception(self, *args, **kwargs):
raise Exception('testing')
diff --git a/nova/tests/test_auth.py b/nova/tests/test_auth.py
index 2e24b7d6e..4561eb7f2 100644
--- a/nova/tests/test_auth.py
+++ b/nova/tests/test_auth.py
@@ -62,7 +62,12 @@ class project_generator(object):
class user_and_project_generator(object):
- def __init__(self, manager, user_state={}, project_state={}):
+ def __init__(self, manager, user_state=None, project_state=None):
+ if not user_state:
+ user_state = {}
+ if not project_state:
+ project_state = {}
+
self.manager = manager
if 'name' not in user_state:
user_state['name'] = 'test1'
diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py
index 80f7ff489..73c9bd78d 100644
--- a/nova/tests/test_compute.py
+++ b/nova/tests/test_compute.py
@@ -76,9 +76,9 @@ class ComputeTestCase(test.TestCase):
def _create_instance(self, params=None):
"""Create a test instance"""
-
- if params is None:
+ if not params:
params = {}
+
inst = {}
inst['image_ref'] = 1
inst['reservation_id'] = 'r-fakeres'
@@ -91,8 +91,11 @@ class ComputeTestCase(test.TestCase):
inst.update(params)
return db.instance_create(self.context, inst)['id']
- def _create_instance_type(self, params={}):
+ def _create_instance_type(self, params=None):
"""Create a test instance"""
+ if not params:
+ params = {}
+
context = self.context.elevated()
inst = {}
inst['name'] = 'm1.small'
diff --git a/nova/tests/test_instance_types_extra_specs.py b/nova/tests/test_instance_types_extra_specs.py
index 393ed1e36..205601277 100644
--- a/nova/tests/test_instance_types_extra_specs.py
+++ b/nova/tests/test_instance_types_extra_specs.py
@@ -136,7 +136,7 @@ class InstanceTypeExtraSpecsTestCase(test.TestCase):
"m1.small")
self.assertEquals(instance_type['extra_specs'], {})
- def test_instance_type_get_with_extra_specs(self):
+ def test_instance_type_get_by_flavor_id_with_extra_specs(self):
instance_type = db.api.instance_type_get_by_flavor_id(
context.get_admin_context(),
105)
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index c04851d59..17f1be967 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -1194,8 +1194,11 @@ class NWFilterTestCase(test.TestCase):
'project_id': 'fake',
'instance_type_id': 1})
- def _create_instance_type(self, params={}):
+ def _create_instance_type(self, params=None):
"""Create a test instance"""
+ if not params:
+ params = {}
+
context = self.context.elevated()
inst = {}
inst['name'] = 'm1.small'
diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py
index dfc1eeb0a..952277e3f 100644
--- a/nova/tests/test_xenapi.py
+++ b/nova/tests/test_xenapi.py
@@ -654,6 +654,24 @@ class XenAPIVMTestCase(test.TestCase):
# Ensure that it will not unrescue a non-rescued instance.
self.assertRaises(Exception, conn.unrescue, instance, None)
+ def test_revert_migration(self):
+ instance = self._create_instance()
+
+ class VMOpsMock():
+
+ def __init__(self):
+ self.revert_migration_called = False
+
+ def revert_migration(self, instance):
+ self.revert_migration_called = True
+
+ stubs.stubout_session(self.stubs, stubs.FakeSessionForMigrationTests)
+
+ conn = xenapi_conn.get_connection(False)
+ conn._vmops = VMOpsMock()
+ conn.revert_migration(instance)
+ self.assertTrue(conn._vmops.revert_migration_called)
+
def _create_instance(self, instance_id=1, spawn=True):
"""Creates and spawns a test instance."""
stubs.stubout_loopingcall_start(self.stubs)