summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit/compute/v2
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/tests/unit/compute/v2')
-rw-r--r--openstackclient/tests/unit/compute/v2/fakes.py5
-rw-r--r--openstackclient/tests/unit/compute/v2/test_host.py85
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py224
3 files changed, 234 insertions, 80 deletions
diff --git a/openstackclient/tests/unit/compute/v2/fakes.py b/openstackclient/tests/unit/compute/v2/fakes.py
index 0fae19af..1ec71785 100644
--- a/openstackclient/tests/unit/compute/v2/fakes.py
+++ b/openstackclient/tests/unit/compute/v2/fakes.py
@@ -1230,10 +1230,7 @@ class FakeHost(object):
'project': 'project-' + uuid.uuid4().hex,
}
host_info.update(attrs)
- host = fakes.FakeResource(
- info=copy.deepcopy(host_info),
- loaded=True)
- return host
+ return host_info
class FakeServerGroup(object):
diff --git a/openstackclient/tests/unit/compute/v2/test_host.py b/openstackclient/tests/unit/compute/v2/test_host.py
index a388172f..329095de 100644
--- a/openstackclient/tests/unit/compute/v2/test_host.py
+++ b/openstackclient/tests/unit/compute/v2/test_host.py
@@ -13,6 +13,8 @@
# under the License.
#
+import mock
+
from openstackclient.compute.v2 import host
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
from openstackclient.tests.unit import utils as tests_utils
@@ -23,11 +25,13 @@ class TestHost(compute_fakes.TestComputev2):
def setUp(self):
super(TestHost, self).setUp()
- # Get a shortcut to the FlavorManager Mock
- self.host_mock = self.app.client_manager.compute.hosts
- self.host_mock.reset_mock()
+ # Get a shortcut to the compute client
+ self.compute = self.app.client_manager.compute
+@mock.patch(
+ 'openstackclient.api.compute_v2.APIv2.host_list'
+)
class TestHostList(TestHost):
host = compute_fakes.FakeHost.create_one_host()
@@ -39,19 +43,18 @@ class TestHostList(TestHost):
)
data = [(
- host.host_name,
- host.service,
- host.zone,
+ host['host_name'],
+ host['service'],
+ host['zone'],
)]
def setUp(self):
super(TestHostList, self).setUp()
- self.host_mock.list_all.return_value = [self.host]
-
self.cmd = host.ListHost(self.app, None)
- def test_host_list_no_option(self):
+ def test_host_list_no_option(self, h_mock):
+ h_mock.return_value = [self.host]
arglist = []
verifylist = []
@@ -59,44 +62,48 @@ class TestHostList(TestHost):
columns, data = self.cmd.take_action(parsed_args)
- self.host_mock.list_all.assert_called_with(None)
+ h_mock.assert_called_with(None)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
- def test_host_list_with_option(self):
+ def test_host_list_with_option(self, h_mock):
+ h_mock.return_value = [self.host]
arglist = [
- '--zone', self.host.zone,
+ '--zone', self.host['zone'],
]
verifylist = [
- ('zone', self.host.zone),
+ ('zone', self.host['zone']),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- self.host_mock.list_all.assert_called_with(self.host.zone)
+ h_mock.assert_called_with(self.host['zone'])
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
+@mock.patch(
+ 'openstackclient.api.compute_v2.APIv2.host_set'
+)
class TestHostSet(TestHost):
def setUp(self):
super(TestHostSet, self).setUp()
self.host = compute_fakes.FakeHost.create_one_host()
- self.host_mock.get.return_value = self.host
- self.host_mock.update.return_value = None
self.cmd = host.SetHost(self.app, None)
- def test_host_set_no_option(self):
+ def test_host_set_no_option(self, h_mock):
+ h_mock.return_value = self.host
+ h_mock.update.return_value = None
arglist = [
- self.host.host
+ self.host['host'],
]
verifylist = [
- ('host', self.host.host)
+ ('host', self.host['host']),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -105,18 +112,20 @@ class TestHostSet(TestHost):
self.assertIsNone(result)
body = {}
- self.host_mock.update.assert_called_with(self.host.host, body)
+ h_mock.assert_called_with(self.host['host'], body)
- def test_host_set(self):
+ def test_host_set(self, h_mock):
+ h_mock.return_value = self.host
+ h_mock.update.return_value = None
arglist = [
'--enable',
'--disable-maintenance',
- self.host.host
+ self.host['host'],
]
verifylist = [
('enable', True),
('enable_maintenance', False),
- ('host', self.host.host)
+ ('host', self.host['host']),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -125,9 +134,12 @@ class TestHostSet(TestHost):
self.assertIsNone(result)
body = {'status': 'enable', 'maintenance_mode': 'disable'}
- self.host_mock.update.assert_called_with(self.host.host, body)
+ h_mock.assert_called_with(self.host['host'], body)
+@mock.patch(
+ 'openstackclient.api.compute_v2.APIv2.host_show'
+)
class TestHostShow(TestHost):
host = compute_fakes.FakeHost.create_one_host()
@@ -139,22 +151,22 @@ class TestHostShow(TestHost):
'Memory MB',
'Disk GB',
)
+
data = [(
- host.host,
- host.project,
- host.cpu,
- host.memory_mb,
- host.disk_gb,
+ host['host'],
+ host['project'],
+ host['cpu'],
+ host['memory_mb'],
+ host['disk_gb'],
)]
def setUp(self):
super(TestHostShow, self).setUp()
- self.host_mock.get.return_value = [self.host]
-
self.cmd = host.ShowHost(self.app, None)
- def test_host_show_no_option(self):
+ def test_host_show_no_option(self, h_mock):
+ h_mock.host_show.return_value = [self.host]
arglist = []
verifylist = []
@@ -162,18 +174,19 @@ class TestHostShow(TestHost):
self.assertRaises(tests_utils.ParserException, self.check_parser,
self.cmd, arglist, verifylist)
- def test_host_show_with_option(self):
+ def test_host_show_with_option(self, h_mock):
+ h_mock.return_value = [self.host]
arglist = [
- self.host.host_name,
+ self.host['host_name'],
]
verifylist = [
- ('host', self.host.host_name),
+ ('host', self.host['host_name']),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- self.host_mock.get.assert_called_with(self.host.host_name)
+ h_mock.assert_called_with(self.host['host_name'])
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index c4e125ba..87c9a985 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -141,48 +141,148 @@ class TestServerAddFixedIP(TestServer):
self._test_server_add_fixed_ip(extralist, '5.6.7.8')
-class TestServerAddFloatingIP(TestServer):
+@mock.patch(
+ 'openstackclient.api.compute_v2.APIv2.floating_ip_add'
+)
+class TestServerAddFloatingIPCompute(compute_fakes.TestComputev2):
def setUp(self):
- super(TestServerAddFloatingIP, self).setUp()
+ super(TestServerAddFloatingIPCompute, self).setUp()
+
+ self.app.client_manager.network_endpoint_enabled = False
# Get the command object to test
self.cmd = server.AddFloatingIP(self.app, None)
- # Set add_floating_ip method to be tested.
- self.methods = {
- 'add_floating_ip': None,
- }
+ def test_server_add_floating_ip_default(self, fip_mock):
+ _floating_ip = compute_fakes.FakeFloatingIP.create_one_floating_ip()
+ arglist = [
+ 'server1',
+ _floating_ip['ip'],
+ ]
+ verifylist = [
+ ('server', 'server1'),
+ ('ip_address', _floating_ip['ip']),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- self.find_port = mock.Mock()
- self.app.client_manager.network.find_port = self.find_port
+ self.cmd.take_action(parsed_args)
- def _test_server_add_floating_ip(self, extralist, fixed_ip_address):
- servers = self.setup_servers_mock(count=1)
+ fip_mock.assert_called_once_with(
+ 'server1',
+ _floating_ip['ip'],
+ fixed_address=None,
+ )
+ def test_server_add_floating_ip_fixed(self, fip_mock):
+ _floating_ip = compute_fakes.FakeFloatingIP.create_one_floating_ip()
arglist = [
- servers[0].id,
- '1.2.3.4',
- ] + extralist
+ '--fixed-ip-address', _floating_ip['fixed_ip'],
+ 'server1',
+ _floating_ip['ip'],
+ ]
verifylist = [
- ('server', servers[0].id),
- ('ip_address', '1.2.3.4'),
- ('fixed_ip_address', fixed_ip_address),
+ ('fixed_ip_address', _floating_ip['fixed_ip']),
+ ('server', 'server1'),
+ ('ip_address', _floating_ip['ip']),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
+ self.cmd.take_action(parsed_args)
- servers[0].add_floating_ip.assert_called_once_with('1.2.3.4',
- fixed_ip_address)
- self.assertIsNone(result)
+ fip_mock.assert_called_once_with(
+ 'server1',
+ _floating_ip['ip'],
+ fixed_address=_floating_ip['fixed_ip'],
+ )
- def test_server_add_floating_ip(self):
- self._test_server_add_floating_ip([], None)
- def test_server_add_floating_ip_to_fixed_ip(self):
- extralist = ['--fixed-ip-address', '5.6.7.8']
- self._test_server_add_floating_ip(extralist, '5.6.7.8')
+class TestServerAddFloatingIPNetwork(
+ TestServer,
+ network_fakes.TestNetworkV2,
+):
+
+ def setUp(self):
+ super(TestServerAddFloatingIPNetwork, self).setUp()
+
+ self.app.client_manager.network = mock.Mock()
+ self.network = self.app.client_manager.network
+ self.network.update_ip = mock.Mock(return_value=None)
+
+ # Get the command object to test
+ self.cmd = server.AddFloatingIP(self.app, self.namespace)
+
+ def test_server_add_floating_ip_default(self):
+ _server = compute_fakes.FakeServer.create_one_server()
+ self.servers_mock.get.return_value = _server
+ _port = network_fakes.FakePort.create_one_port()
+ _floating_ip = network_fakes.FakeFloatingIP.create_one_floating_ip()
+ self.network.find_ip = mock.Mock(return_value=_floating_ip)
+ self.network.ports = mock.Mock(return_value=[_port])
+ arglist = [
+ _server.id,
+ _floating_ip['ip'],
+ ]
+ verifylist = [
+ ('server', _server.id),
+ ('ip_address', _floating_ip['ip']),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.cmd.take_action(parsed_args)
+
+ attrs = {
+ 'port_id': _port.id,
+ }
+
+ self.network.find_ip.assert_called_once_with(
+ _floating_ip['ip'],
+ ignore_missing=False,
+ )
+ self.network.ports.assert_called_once_with(
+ device_id=_server.id,
+ )
+ self.network.update_ip.assert_called_once_with(
+ _floating_ip,
+ **attrs
+ )
+
+ def test_server_add_floating_ip_fixed(self):
+ _server = compute_fakes.FakeServer.create_one_server()
+ self.servers_mock.get.return_value = _server
+ _port = network_fakes.FakePort.create_one_port()
+ _floating_ip = network_fakes.FakeFloatingIP.create_one_floating_ip()
+ self.network.find_ip = mock.Mock(return_value=_floating_ip)
+ self.network.ports = mock.Mock(return_value=[_port])
+ arglist = [
+ '--fixed-ip-address', _floating_ip['fixed_ip'],
+ _server.id,
+ _floating_ip['ip'],
+ ]
+ verifylist = [
+ ('fixed_ip_address', _floating_ip['fixed_ip']),
+ ('server', _server.id),
+ ('ip_address', _floating_ip['ip']),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.cmd.take_action(parsed_args)
+
+ attrs = {
+ 'port_id': _port.id,
+ }
+
+ self.network.find_ip.assert_called_once_with(
+ _floating_ip['ip'],
+ ignore_missing=False,
+ )
+ self.network.ports.assert_called_once_with(
+ device_id=_server.id,
+ )
+ self.network.update_ip.assert_called_once_with(
+ _floating_ip,
+ **attrs
+ )
class TestServerAddPort(TestServer):
@@ -2302,36 +2402,80 @@ class TestServerRescue(TestServer):
self.server.rescue.assert_called_with(image=None, password=password)
-class TestServerRemoveFloatingIP(TestServer):
+@mock.patch(
+ 'openstackclient.api.compute_v2.APIv2.floating_ip_remove'
+)
+class TestServerRemoveFloatingIPCompute(compute_fakes.TestComputev2):
def setUp(self):
- super(TestServerRemoveFloatingIP, self).setUp()
+ super(TestServerRemoveFloatingIPCompute, self).setUp()
+
+ self.app.client_manager.network_endpoint_enabled = False
# Get the command object to test
self.cmd = server.RemoveFloatingIP(self.app, None)
- # Set unshelve method to be tested.
- self.methods = {
- 'remove_floating_ip': None,
- }
+ def test_server_remove_floating_ip(self, fip_mock):
+ _floating_ip = compute_fakes.FakeFloatingIP.create_one_floating_ip()
- def test_server_remove_floating_ip(self):
- servers = self.setup_servers_mock(count=1)
+ arglist = [
+ 'server1',
+ _floating_ip['ip'],
+ ]
+ verifylist = [
+ ('server', 'server1'),
+ ('ip_address', _floating_ip['ip']),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.cmd.take_action(parsed_args)
+
+ fip_mock.assert_called_once_with(
+ 'server1',
+ _floating_ip['ip'],
+ )
+
+
+class TestServerRemoveFloatingIPNetwork(network_fakes.TestNetworkV2):
+
+ def setUp(self):
+ super(TestServerRemoveFloatingIPNetwork, self).setUp()
+
+ self.app.client_manager.network = mock.Mock()
+ self.network = self.app.client_manager.network
+ self.network.update_ip = mock.Mock(return_value=None)
+
+ # Get the command object to test
+ self.cmd = server.RemoveFloatingIP(self.app, self.namespace)
+ def test_server_remove_floating_ip_default(self):
+ _server = compute_fakes.FakeServer.create_one_server()
+ _floating_ip = network_fakes.FakeFloatingIP.create_one_floating_ip()
+ self.network.find_ip = mock.Mock(return_value=_floating_ip)
arglist = [
- servers[0].id,
- '1.2.3.4',
+ _server.id,
+ _floating_ip['ip'],
]
verifylist = [
- ('server', servers[0].id),
- ('ip_address', '1.2.3.4'),
+ ('server', _server.id),
+ ('ip_address', _floating_ip['ip']),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
+ self.cmd.take_action(parsed_args)
- servers[0].remove_floating_ip.assert_called_once_with('1.2.3.4')
- self.assertIsNone(result)
+ attrs = {
+ 'port_id': None,
+ }
+
+ self.network.find_ip.assert_called_once_with(
+ _floating_ip['ip'],
+ ignore_missing=False,
+ )
+ self.network.update_ip.assert_called_once_with(
+ _floating_ip,
+ **attrs
+ )
class TestServerRemovePort(TestServer):