Fix old-style mocking of nova_client
When we assign to nova_client, rather than using the decorator form, it persists through the process lifetime, which pollutes other tests. This shows up when you start trying to replace nova_client mocks with requests_mock. Change-Id: I056085c9b80868a78c95ddda0aeae11865015ad1
This commit is contained in:
parent
6673bfeee3
commit
da7f7ccb21
@ -17,7 +17,6 @@ test_create_server
|
||||
Tests for the `create_server` command.
|
||||
"""
|
||||
|
||||
from mock import patch, Mock
|
||||
import mock
|
||||
from shade import meta
|
||||
from shade import OpenStackCloud
|
||||
@ -28,148 +27,126 @@ from shade.tests.unit import base
|
||||
|
||||
class TestCreateServer(base.RequestsMockTestCase):
|
||||
|
||||
def test_create_server_with_create_exception(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_create_server_with_create_exception(self, mock_nova):
|
||||
"""
|
||||
Test that an exception in the novaclient create raises an exception in
|
||||
create_server.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud.nova_client"):
|
||||
config = {
|
||||
"servers.create.side_effect": Exception("exception"),
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.create_server,
|
||||
'server-name', {'id': 'image-id'}, {'id': 'flavor-id'})
|
||||
mock_nova.servers.create.side_effect = Exception("exception")
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.create_server,
|
||||
'server-name', {'id': 'image-id'}, {'id': 'flavor-id'})
|
||||
|
||||
def test_create_server_with_get_exception(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_create_server_with_get_exception(self, mock_nova):
|
||||
"""
|
||||
Test that an exception when attempting to get the server instance via
|
||||
the novaclient raises an exception in create_server.
|
||||
"""
|
||||
|
||||
with patch("shade.OpenStackCloud.nova_client"):
|
||||
config = {
|
||||
"servers.create.return_value": Mock(status="BUILD"),
|
||||
"servers.get.side_effect": Exception("exception")
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.create_server,
|
||||
'server-name', {'id': 'image-id'}, {'id': 'flavor-id'})
|
||||
mock_nova.servers.create.return_value = mock.Mock(status="BUILD")
|
||||
mock_nova.servers.get.side_effect = Exception("exception")
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.create_server,
|
||||
'server-name', {'id': 'image-id'}, {'id': 'flavor-id'})
|
||||
|
||||
def test_create_server_with_server_error(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_create_server_with_server_error(self, mock_nova):
|
||||
"""
|
||||
Test that a server error before we return or begin waiting for the
|
||||
server instance spawn raises an exception in create_server.
|
||||
"""
|
||||
build_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
error_server = fakes.FakeServer('1234', '', 'ERROR')
|
||||
with patch("shade.OpenStackCloud.nova_client"):
|
||||
config = {
|
||||
"servers.create.return_value": build_server,
|
||||
"servers.get.return_value": error_server,
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.create_server,
|
||||
'server-name', {'id': 'image-id'}, {'id': 'flavor-id'})
|
||||
mock_nova.servers.create.return_value = build_server
|
||||
mock_nova.servers.get.return_value = error_server
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.create_server,
|
||||
'server-name', {'id': 'image-id'}, {'id': 'flavor-id'})
|
||||
|
||||
def test_create_server_wait_server_error(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_create_server_wait_server_error(self, mock_nova):
|
||||
"""
|
||||
Test that a server error while waiting for the server to spawn
|
||||
raises an exception in create_server.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud.nova_client"):
|
||||
build_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
error_server = fakes.FakeServer('1234', '', 'ERROR')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
config = {
|
||||
"servers.create.return_value": build_server,
|
||||
"servers.get.return_value": build_server,
|
||||
"servers.list.side_effect": [
|
||||
[build_server], [error_server]],
|
||||
"floating_ips.list.return_value": [fake_floating_ip]
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertRaises(
|
||||
OpenStackCloudException,
|
||||
self.cloud.create_server,
|
||||
'server-name', dict(id='image-id'),
|
||||
dict(id='flavor-id'), wait=True)
|
||||
build_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
error_server = fakes.FakeServer('1234', '', 'ERROR')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
mock_nova.servers.create.return_value = build_server
|
||||
mock_nova.servers.get.return_value = build_server
|
||||
mock_nova.servers.list.side_effect = [[build_server], [error_server]]
|
||||
mock_nova.floating_ips.list.return_value = [fake_floating_ip]
|
||||
self.assertRaises(
|
||||
OpenStackCloudException,
|
||||
self.cloud.create_server,
|
||||
'server-name', dict(id='image-id'),
|
||||
dict(id='flavor-id'), wait=True)
|
||||
|
||||
def test_create_server_with_timeout(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_create_server_with_timeout(self, mock_nova):
|
||||
"""
|
||||
Test that a timeout while waiting for the server to spawn raises an
|
||||
exception in create_server.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud.nova_client"):
|
||||
fake_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
config = {
|
||||
"servers.create.return_value": fake_server,
|
||||
"servers.get.return_value": fake_server,
|
||||
"servers.list.return_value": [fake_server],
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertRaises(
|
||||
OpenStackCloudTimeout,
|
||||
self.cloud.create_server,
|
||||
'server-name',
|
||||
dict(id='image-id'), dict(id='flavor-id'),
|
||||
wait=True, timeout=0.01)
|
||||
fake_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
mock_nova.servers.create.return_value = fake_server
|
||||
mock_nova.servers.get.return_value = fake_server
|
||||
mock_nova.servers.list.return_value = [fake_server]
|
||||
self.assertRaises(
|
||||
OpenStackCloudTimeout,
|
||||
self.cloud.create_server,
|
||||
'server-name',
|
||||
dict(id='image-id'), dict(id='flavor-id'),
|
||||
wait=True, timeout=0.01)
|
||||
|
||||
def test_create_server_no_wait(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_create_server_no_wait(self, mock_nova):
|
||||
"""
|
||||
Test that create_server with no wait and no exception in the
|
||||
novaclient create call returns the server instance.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud.nova_client"):
|
||||
fake_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
config = {
|
||||
"servers.create.return_value": fake_server,
|
||||
"servers.get.return_value": fake_server,
|
||||
"floating_ips.list.return_value": [fake_floating_ip]
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertEqual(
|
||||
self.cloud._normalize_server(
|
||||
meta.obj_to_dict(fake_server)),
|
||||
self.cloud.create_server(
|
||||
name='server-name',
|
||||
image=dict(id='image=id'),
|
||||
flavor=dict(id='flavor-id')))
|
||||
fake_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
mock_nova.servers.create.return_value = fake_server
|
||||
mock_nova.servers.get.return_value = fake_server
|
||||
mock_nova.floating_ips.list.return_value = [fake_floating_ip]
|
||||
self.assertEqual(
|
||||
self.cloud._normalize_server(
|
||||
meta.obj_to_dict(fake_server)),
|
||||
self.cloud.create_server(
|
||||
name='server-name',
|
||||
image=dict(id='image=id'),
|
||||
flavor=dict(id='flavor-id')))
|
||||
|
||||
def test_create_server_with_admin_pass_no_wait(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_create_server_with_admin_pass_no_wait(self, mock_nova):
|
||||
"""
|
||||
Test that a server with an admin_pass passed returns the password
|
||||
"""
|
||||
with patch("shade.OpenStackCloud.nova_client"):
|
||||
fake_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
fake_create_server = fakes.FakeServer('1234', '', 'BUILD',
|
||||
adminPass='ooBootheiX0edoh')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
config = {
|
||||
"servers.create.return_value": fake_create_server,
|
||||
"servers.get.return_value": fake_server,
|
||||
"floating_ips.list.return_value": [fake_floating_ip]
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertEqual(
|
||||
self.cloud._normalize_server(
|
||||
meta.obj_to_dict(fake_create_server)),
|
||||
self.cloud.create_server(
|
||||
name='server-name', image=dict(id='image=id'),
|
||||
flavor=dict(id='flavor-id'), admin_pass='ooBootheiX0edoh'))
|
||||
fake_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
fake_create_server = fakes.FakeServer('1234', '', 'BUILD',
|
||||
adminPass='ooBootheiX0edoh')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
mock_nova.servers.create.return_value = fake_create_server
|
||||
mock_nova.servers.get.return_value = fake_server
|
||||
mock_nova.floating_ips.list.return_value = [fake_floating_ip]
|
||||
self.assertEqual(
|
||||
self.cloud._normalize_server(
|
||||
meta.obj_to_dict(fake_create_server)),
|
||||
self.cloud.create_server(
|
||||
name='server-name', image=dict(id='image=id'),
|
||||
flavor=dict(id='flavor-id'), admin_pass='ooBootheiX0edoh'))
|
||||
|
||||
@patch.object(OpenStackCloud, "wait_for_server")
|
||||
@patch.object(OpenStackCloud, "nova_client")
|
||||
@mock.patch.object(OpenStackCloud, "wait_for_server")
|
||||
@mock.patch.object(OpenStackCloud, "nova_client")
|
||||
def test_create_server_with_admin_pass_wait(self, mock_nova, mock_wait):
|
||||
"""
|
||||
Test that a server with an admin_pass passed returns the password
|
||||
@ -199,8 +176,8 @@ class TestCreateServer(base.RequestsMockTestCase):
|
||||
meta.obj_to_dict(fake_server_with_pass))
|
||||
)
|
||||
|
||||
@patch.object(OpenStackCloud, "get_active_server")
|
||||
@patch.object(OpenStackCloud, "get_server")
|
||||
@mock.patch.object(OpenStackCloud, "get_active_server")
|
||||
@mock.patch.object(OpenStackCloud, "get_server")
|
||||
def test_wait_for_server(self, mock_get_server, mock_get_active_server):
|
||||
"""
|
||||
Test that waiting for a server returns the server instance when
|
||||
@ -233,8 +210,8 @@ class TestCreateServer(base.RequestsMockTestCase):
|
||||
|
||||
self.assertEqual('ACTIVE', server['status'])
|
||||
|
||||
@patch.object(OpenStackCloud, 'wait_for_server')
|
||||
@patch.object(OpenStackCloud, 'nova_client')
|
||||
@mock.patch.object(OpenStackCloud, 'wait_for_server')
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_create_server_wait(self, mock_nova, mock_wait):
|
||||
"""
|
||||
Test that create_server with a wait actually does the wait.
|
||||
@ -252,37 +229,35 @@ class TestCreateServer(base.RequestsMockTestCase):
|
||||
nat_destination=None,
|
||||
)
|
||||
|
||||
@patch('time.sleep')
|
||||
def test_create_server_no_addresses(self, mock_sleep):
|
||||
@mock.patch.object(OpenStackCloud, 'add_ips_to_server')
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
@mock.patch('time.sleep')
|
||||
def test_create_server_no_addresses(
|
||||
self, mock_sleep, mock_nova, mock_add_ips_to_server):
|
||||
"""
|
||||
Test that create_server with a wait throws an exception if the
|
||||
server doesn't have addresses.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud.nova_client"):
|
||||
build_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
fake_server = fakes.FakeServer('1234', '', 'ACTIVE')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
config = {
|
||||
"servers.create.return_value": build_server,
|
||||
"servers.get.return_value": [build_server, None],
|
||||
"servers.list.side_effect": [
|
||||
[build_server], [fake_server]],
|
||||
"servers.delete.return_value": None,
|
||||
"floating_ips.list.return_value": [fake_floating_ip]
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.cloud._SERVER_AGE = 0
|
||||
with patch.object(OpenStackCloud, "add_ips_to_server",
|
||||
return_value=fake_server):
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.create_server,
|
||||
'server-name', {'id': 'image-id'}, {'id': 'flavor-id'},
|
||||
wait=True)
|
||||
build_server = fakes.FakeServer('1234', '', 'BUILD')
|
||||
fake_server = fakes.FakeServer('1234', '', 'ACTIVE')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
mock_nova.servers.create.return_value = build_server
|
||||
mock_nova.servers.get.return_value = [build_server, None]
|
||||
mock_nova.servers.list.side_effect = [[build_server], [fake_server]]
|
||||
mock_nova.servers.delete.return_value = None
|
||||
mock_nova.floating_ips.list.return_value = [fake_floating_ip]
|
||||
mock_add_ips_to_server.return_value = fake_server
|
||||
self.cloud._SERVER_AGE = 0
|
||||
|
||||
@patch('shade.OpenStackCloud.nova_client')
|
||||
@patch('shade.OpenStackCloud.get_network')
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.create_server,
|
||||
'server-name', {'id': 'image-id'}, {'id': 'flavor-id'},
|
||||
wait=True)
|
||||
|
||||
@mock.patch('shade.OpenStackCloud.nova_client')
|
||||
@mock.patch('shade.OpenStackCloud.get_network')
|
||||
def test_create_server_network_with_no_nics(self, mock_get_network,
|
||||
mock_nova):
|
||||
"""
|
||||
@ -294,8 +269,8 @@ class TestCreateServer(base.RequestsMockTestCase):
|
||||
dict(id='image-id'), dict(id='flavor-id'), network='network-name')
|
||||
mock_get_network.assert_called_once_with(name_or_id='network-name')
|
||||
|
||||
@patch('shade.OpenStackCloud.nova_client')
|
||||
@patch('shade.OpenStackCloud.get_network')
|
||||
@mock.patch('shade.OpenStackCloud.nova_client')
|
||||
@mock.patch('shade.OpenStackCloud.get_network')
|
||||
def test_create_server_network_with_empty_nics(self,
|
||||
mock_get_network,
|
||||
mock_nova):
|
||||
|
@ -19,7 +19,8 @@ test_rebuild_server
|
||||
Tests for the `rebuild_server` command.
|
||||
"""
|
||||
|
||||
from mock import patch, Mock
|
||||
import mock
|
||||
|
||||
from shade import meta
|
||||
from shade import OpenStackCloud
|
||||
from shade.exc import (OpenStackCloudException, OpenStackCloudTimeout)
|
||||
@ -29,20 +30,18 @@ from shade.tests.unit import base
|
||||
|
||||
class TestRebuildServer(base.TestCase):
|
||||
|
||||
def test_rebuild_server_rebuild_exception(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_rebuild_server_rebuild_exception(self, mock_nova):
|
||||
"""
|
||||
Test that an exception in the novaclient rebuild raises an exception in
|
||||
rebuild_server.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
config = {
|
||||
"servers.rebuild.side_effect": Exception("exception"),
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.rebuild_server, "a", "b")
|
||||
mock_nova.servers.rebuild.side_effect = Exception("exception")
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.rebuild_server, "a", "b")
|
||||
|
||||
def test_rebuild_server_server_error(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_rebuild_server_server_error(self, mock_nova):
|
||||
"""
|
||||
Test that a server error while waiting for the server to rebuild
|
||||
raises an exception in rebuild_server.
|
||||
@ -52,108 +51,89 @@ class TestRebuildServer(base.TestCase):
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
with patch("shade.OpenStackCloud"):
|
||||
config = {
|
||||
"servers.rebuild.return_value": rebuild_server,
|
||||
"servers.list.return_value": [error_server],
|
||||
"floating_ips.list.return_value": [fake_floating_ip]
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertRaises(
|
||||
OpenStackCloudException,
|
||||
self.cloud.rebuild_server, "1234", "b", wait=True)
|
||||
mock_nova.servers.rebuild.return_value = rebuild_server
|
||||
mock_nova.servers.list.return_value = [error_server]
|
||||
mock_nova.floating_ips.list.return_value = [fake_floating_ip]
|
||||
self.assertRaises(
|
||||
OpenStackCloudException,
|
||||
self.cloud.rebuild_server, "1234", "b", wait=True)
|
||||
|
||||
def test_rebuild_server_timeout(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_rebuild_server_timeout(self, mock_nova):
|
||||
"""
|
||||
Test that a timeout while waiting for the server to rebuild raises an
|
||||
exception in rebuild_server.
|
||||
"""
|
||||
rebuild_server = fakes.FakeServer('1234', '', 'REBUILD')
|
||||
with patch("shade.OpenStackCloud"):
|
||||
config = {
|
||||
"servers.rebuild.return_value": rebuild_server,
|
||||
"servers.list.return_value": [rebuild_server],
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertRaises(
|
||||
OpenStackCloudTimeout,
|
||||
self.cloud.rebuild_server, "a", "b", wait=True, timeout=0.001)
|
||||
mock_nova.servers.rebuild.return_value = rebuild_server
|
||||
mock_nova.servers.list.return_value = [rebuild_server]
|
||||
self.assertRaises(
|
||||
OpenStackCloudTimeout,
|
||||
self.cloud.rebuild_server, "a", "b", wait=True, timeout=0.001)
|
||||
|
||||
def test_rebuild_server_no_wait(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_rebuild_server_no_wait(self, mock_nova):
|
||||
"""
|
||||
Test that rebuild_server with no wait and no exception in the
|
||||
novaclient rebuild call returns the server instance.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
rebuild_server = fakes.FakeServer('1234', '', 'REBUILD')
|
||||
config = {
|
||||
"servers.rebuild.return_value": rebuild_server
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertEqual(meta.obj_to_dict(rebuild_server),
|
||||
self.cloud.rebuild_server("a", "b"))
|
||||
rebuild_server = fakes.FakeServer('1234', '', 'REBUILD')
|
||||
mock_nova.servers.rebuild.return_value = rebuild_server
|
||||
self.assertEqual(meta.obj_to_dict(rebuild_server),
|
||||
self.cloud.rebuild_server("a", "b"))
|
||||
|
||||
def test_rebuild_server_with_admin_pass_no_wait(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_rebuild_server_with_admin_pass_no_wait(self, mock_nova):
|
||||
"""
|
||||
Test that a server with an admin_pass passed returns the password
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
rebuild_server = fakes.FakeServer('1234', '', 'REBUILD',
|
||||
adminPass='ooBootheiX0edoh')
|
||||
config = {
|
||||
"servers.rebuild.return_value": rebuild_server,
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertEqual(
|
||||
meta.obj_to_dict(rebuild_server),
|
||||
self.cloud.rebuild_server(
|
||||
'a', 'b', admin_pass='ooBootheiX0edoh'))
|
||||
rebuild_server = fakes.FakeServer('1234', '', 'REBUILD',
|
||||
adminPass='ooBootheiX0edoh')
|
||||
mock_nova.servers.rebuild.return_value = rebuild_server
|
||||
self.assertEqual(
|
||||
meta.obj_to_dict(rebuild_server),
|
||||
self.cloud.rebuild_server(
|
||||
'a', 'b', admin_pass='ooBootheiX0edoh'))
|
||||
|
||||
def test_rebuild_server_with_admin_pass_wait(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_rebuild_server_with_admin_pass_wait(self, mock_nova):
|
||||
"""
|
||||
Test that a server with an admin_pass passed returns the password
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
rebuild_server = fakes.FakeServer('1234', '', 'REBUILD',
|
||||
adminPass='ooBootheiX0edoh')
|
||||
active_server = fakes.FakeServer('1234', '', 'ACTIVE')
|
||||
ret_active_server = fakes.FakeServer('1234', '', 'ACTIVE',
|
||||
adminPass='ooBootheiX0edoh')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
config = {
|
||||
"servers.rebuild.return_value": rebuild_server,
|
||||
"servers.list.return_value": [active_server],
|
||||
"floating_ips.list.return_value": [fake_floating_ip]
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.cloud.name = 'cloud-name'
|
||||
self.assertEqual(
|
||||
self.cloud._normalize_server(
|
||||
meta.obj_to_dict(ret_active_server)),
|
||||
self.cloud.rebuild_server(
|
||||
"1234", "b", wait=True, admin_pass='ooBootheiX0edoh'))
|
||||
rebuild_server = fakes.FakeServer('1234', '', 'REBUILD',
|
||||
adminPass='ooBootheiX0edoh')
|
||||
active_server = fakes.FakeServer('1234', '', 'ACTIVE')
|
||||
ret_active_server = fakes.FakeServer('1234', '', 'ACTIVE',
|
||||
adminPass='ooBootheiX0edoh')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
mock_nova.servers.rebuild.return_value = rebuild_server
|
||||
mock_nova.servers.list.return_value = [active_server]
|
||||
mock_nova.floating_ips.list.return_value = [fake_floating_ip]
|
||||
self.cloud.name = 'cloud-name'
|
||||
self.assertEqual(
|
||||
self.cloud._normalize_server(
|
||||
meta.obj_to_dict(ret_active_server)),
|
||||
self.cloud.rebuild_server(
|
||||
"1234", "b", wait=True, admin_pass='ooBootheiX0edoh'))
|
||||
|
||||
def test_rebuild_server_wait(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_rebuild_server_wait(self, mock_nova):
|
||||
"""
|
||||
Test that rebuild_server with a wait returns the server instance when
|
||||
its status changes to "ACTIVE".
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
rebuild_server = fakes.FakeServer('1234', '', 'REBUILD')
|
||||
active_server = fakes.FakeServer('1234', '', 'ACTIVE')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
config = {
|
||||
"servers.rebuild.return_value": rebuild_server,
|
||||
"servers.list.return_value": [active_server],
|
||||
"floating_ips.list.return_value": [fake_floating_ip]
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.cloud.name = 'cloud-name'
|
||||
self.assertEqual(
|
||||
self.cloud._normalize_server(
|
||||
meta.obj_to_dict(active_server)),
|
||||
self.cloud.rebuild_server("1234", "b", wait=True))
|
||||
rebuild_server = fakes.FakeServer('1234', '', 'REBUILD')
|
||||
active_server = fakes.FakeServer('1234', '', 'ACTIVE')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
mock_nova.servers.rebuild.return_value = rebuild_server
|
||||
mock_nova.servers.list.return_value = [active_server]
|
||||
mock_nova.floating_ips.list.return_value = [fake_floating_ip]
|
||||
self.cloud.name = 'cloud-name'
|
||||
self.assertEqual(
|
||||
self.cloud._normalize_server(
|
||||
meta.obj_to_dict(active_server)),
|
||||
self.cloud.rebuild_server("1234", "b", wait=True))
|
||||
|
@ -17,7 +17,8 @@ test_server_delete_metadata
|
||||
Tests for the `delete_server_metadata` command.
|
||||
"""
|
||||
|
||||
from mock import patch, Mock
|
||||
import mock
|
||||
|
||||
from shade import OpenStackCloud
|
||||
from shade.exc import OpenStackCloudException
|
||||
from shade.tests.unit import base
|
||||
@ -25,33 +26,26 @@ from shade.tests.unit import base
|
||||
|
||||
class TestServerDeleteMetadata(base.TestCase):
|
||||
|
||||
def test_server_delete_metadata_with_delete_meta_exception(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_server_delete_metadata_with_exception(self, mock_nova):
|
||||
"""
|
||||
Test that a generic exception in the novaclient delete_meta raises
|
||||
an exception in delete_server_metadata.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
config = {
|
||||
"servers.delete_meta.side_effect": Exception("exception"),
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
mock_nova.servers.delete_meta.side_effect = Exception("exception")
|
||||
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.delete_server_metadata,
|
||||
{'id': 'server-id'}, ['key'])
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.delete_server_metadata,
|
||||
{'id': 'server-id'}, ['key'])
|
||||
|
||||
def test_server_delete_metadata_with_exception_reraise(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_server_delete_metadata_with_exception_reraise(self, mock_nova):
|
||||
"""
|
||||
Test that an OpenStackCloudException exception gets re-raised
|
||||
in delete_server_metadata.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
config = {
|
||||
"servers.delete_meta.side_effect":
|
||||
OpenStackCloudException("exception"),
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
mock_nova.servers.delete_meta.side_effect = OpenStackCloudException("")
|
||||
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.delete_server_metadata,
|
||||
'server-id', ['key'])
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.delete_server_metadata,
|
||||
'server-id', ['key'])
|
||||
|
@ -17,7 +17,8 @@ test_server_set_metadata
|
||||
Tests for the `set_server_metadata` command.
|
||||
"""
|
||||
|
||||
from mock import patch, Mock
|
||||
import mock
|
||||
|
||||
from shade import OpenStackCloud
|
||||
from shade.exc import OpenStackCloudException
|
||||
from shade.tests.unit import base
|
||||
@ -25,33 +26,26 @@ from shade.tests.unit import base
|
||||
|
||||
class TestServerSetMetadata(base.TestCase):
|
||||
|
||||
def test_server_set_metadata_with_set_meta_exception(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_server_set_metadata_with_set_meta_exception(self, mock_nova):
|
||||
"""
|
||||
Test that a generic exception in the novaclient set_meta raises
|
||||
an exception in set_server_metadata.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
config = {
|
||||
"servers.set_meta.side_effect": Exception("exception"),
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
mock_nova.servers.set_meta.side_effect = Exception("exception")
|
||||
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.set_server_metadata,
|
||||
{'id': 'server-id'}, {'meta': 'data'})
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.set_server_metadata,
|
||||
{'id': 'server-id'}, {'meta': 'data'})
|
||||
|
||||
def test_server_set_metadata_with_exception_reraise(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_server_set_metadata_with_exception_reraise(self, mock_nova):
|
||||
"""
|
||||
Test that an OpenStackCloudException exception gets re-raised
|
||||
in set_server_metadata.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
config = {
|
||||
"servers.set_meta.side_effect":
|
||||
OpenStackCloudException("exception"),
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
mock_nova.servers.set_meta.side_effect = OpenStackCloudException("")
|
||||
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.set_server_metadata,
|
||||
'server-id', {'meta': 'data'})
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.set_server_metadata,
|
||||
'server-id', {'meta': 'data'})
|
||||
|
@ -17,7 +17,8 @@ test_update_server
|
||||
Tests for the `update_server` command.
|
||||
"""
|
||||
|
||||
from mock import patch, Mock
|
||||
import mock
|
||||
|
||||
from shade import OpenStackCloud
|
||||
from shade.exc import OpenStackCloudException
|
||||
from shade.tests import fakes
|
||||
@ -26,38 +27,32 @@ from shade.tests.unit import base
|
||||
|
||||
class TestUpdateServer(base.TestCase):
|
||||
|
||||
def test_update_server_with_update_exception(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_update_server_with_update_exception(self, mock_nova):
|
||||
"""
|
||||
Test that an exception in the novaclient update raises an exception in
|
||||
update_server.
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
config = {
|
||||
"servers.update.side_effect": Exception("exception"),
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.update_server,
|
||||
'server-name')
|
||||
mock_nova.servers.update.side_effect = Exception("exception")
|
||||
self.assertRaises(
|
||||
OpenStackCloudException, self.cloud.update_server,
|
||||
'server-name')
|
||||
|
||||
def test_update_server_name(self):
|
||||
@mock.patch.object(OpenStackCloud, 'nova_client')
|
||||
def test_update_server_name(self, mock_nova):
|
||||
"""
|
||||
Test that update_server updates the name without raising any exception
|
||||
"""
|
||||
with patch("shade.OpenStackCloud"):
|
||||
fake_server = fakes.FakeServer('1234', 'server-name', 'ACTIVE')
|
||||
fake_update_server = fakes.FakeServer('1234', 'server-name2',
|
||||
'ACTIVE')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
config = {
|
||||
"servers.list.return_value": [fake_server],
|
||||
"servers.update.return_value": fake_update_server,
|
||||
"floating_ips.list.return_value": [fake_floating_ip]
|
||||
}
|
||||
OpenStackCloud.nova_client = Mock(**config)
|
||||
self.assertEqual(
|
||||
'server-name2',
|
||||
self.cloud.update_server(
|
||||
'server-name', name='server-name2')['name'])
|
||||
fake_server = fakes.FakeServer('1234', 'server-name', 'ACTIVE')
|
||||
fake_update_server = fakes.FakeServer('1234', 'server-name2',
|
||||
'ACTIVE')
|
||||
fake_floating_ip = fakes.FakeFloatingIP('1234', 'ippool',
|
||||
'1.1.1.1', '2.2.2.2',
|
||||
'5678')
|
||||
mock_nova.servers.list.return_value = [fake_server]
|
||||
mock_nova.servers.update.return_value = fake_update_server
|
||||
mock_nova.floating_ips.list.return_value = [fake_floating_ip]
|
||||
self.assertEqual(
|
||||
'server-name2',
|
||||
self.cloud.update_server(
|
||||
'server-name', name='server-name2')['name'])
|
||||
|
Loading…
Reference in New Issue
Block a user