summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/unit/identity/v3/test_unscoped_saml.py26
-rw-r--r--openstackclient/tests/unit/network/v2/fakes.py12
-rw-r--r--openstackclient/tests/unit/network/v2/test_ip_availability.py1
-rw-r--r--openstackclient/tests/unit/network/v2/test_port.py50
-rw-r--r--openstackclient/tests/unit/volume/v1/test_snapshot.py96
-rw-r--r--openstackclient/tests/unit/volume/v2/fakes.py6
-rw-r--r--openstackclient/tests/unit/volume/v2/test_consistency_group.py103
-rw-r--r--openstackclient/tests/unit/volume/v2/test_snapshot.py103
-rw-r--r--openstackclient/tests/unit/volume/v2/test_volume_host.py86
9 files changed, 444 insertions, 39 deletions
diff --git a/openstackclient/tests/unit/identity/v3/test_unscoped_saml.py b/openstackclient/tests/unit/identity/v3/test_unscoped_saml.py
index 9e4e1876..34655263 100644
--- a/openstackclient/tests/unit/identity/v3/test_unscoped_saml.py
+++ b/openstackclient/tests/unit/identity/v3/test_unscoped_saml.py
@@ -12,8 +12,6 @@
import copy
-from osc_lib import exceptions
-
from openstackclient.identity.v3 import unscoped_saml
from openstackclient.tests.unit import fakes
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
@@ -48,7 +46,6 @@ class TestDomainList(TestUnscopedSAML):
self.cmd = unscoped_saml.ListAccessibleDomains(self.app, None)
def test_accessible_domains_list(self):
- self.app.client_manager.auth_plugin_name = 'v3unscopedsaml'
arglist = []
verifylist = []
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -70,17 +67,6 @@ class TestDomainList(TestUnscopedSAML):
), )
self.assertEqual(datalist, tuple(data))
- def test_accessible_domains_list_wrong_auth(self):
- auth = identity_fakes.FakeAuth("wrong auth")
- self.app.client_manager.identity.session.auth = auth
- arglist = []
- verifylist = []
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.assertRaises(exceptions.CommandError,
- self.cmd.take_action,
- parsed_args)
-
class TestProjectList(TestUnscopedSAML):
@@ -99,7 +85,6 @@ class TestProjectList(TestUnscopedSAML):
self.cmd = unscoped_saml.ListAccessibleProjects(self.app, None)
def test_accessible_projects_list(self):
- self.app.client_manager.auth_plugin_name = 'v3unscopedsaml'
arglist = []
verifylist = []
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -120,14 +105,3 @@ class TestProjectList(TestUnscopedSAML):
identity_fakes.project_name,
), )
self.assertEqual(datalist, tuple(data))
-
- def test_accessible_projects_list_wrong_auth(self):
- auth = identity_fakes.FakeAuth("wrong auth")
- self.app.client_manager.identity.session.auth = auth
- arglist = []
- verifylist = []
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.assertRaises(exceptions.CommandError,
- self.cmd.take_action,
- parsed_args)
diff --git a/openstackclient/tests/unit/network/v2/fakes.py b/openstackclient/tests/unit/network/v2/fakes.py
index c18511f7..97d07076 100644
--- a/openstackclient/tests/unit/network/v2/fakes.py
+++ b/openstackclient/tests/unit/network/v2/fakes.py
@@ -194,15 +194,18 @@ class FakeIPAvailability(object):
"""Fake one or more network ip availabilities."""
@staticmethod
- def create_one_ip_availability():
+ def create_one_ip_availability(attrs=None):
"""Create a fake list with ip availability stats of a network.
+ :param Dictionary attrs:
+ A dictionary with all attributes
:return:
A FakeResource object with network_name, network_id, etc.
"""
+ attrs = attrs or {}
# Set default attributes.
- network_ip_availability = {
+ network_ip_attrs = {
'network_id': 'network-id-' + uuid.uuid4().hex,
'network_name': 'network-name-' + uuid.uuid4().hex,
'tenant_id': '',
@@ -210,10 +213,13 @@ class FakeIPAvailability(object):
'total_ips': 254,
'used_ips': 6,
}
+ network_ip_attrs.update(attrs)
network_ip_availability = fakes.FakeResource(
- info=copy.deepcopy(network_ip_availability),
+ info=copy.deepcopy(network_ip_attrs),
loaded=True)
+ network_ip_availability.project_id = network_ip_attrs['tenant_id']
+
return network_ip_availability
@staticmethod
diff --git a/openstackclient/tests/unit/network/v2/test_ip_availability.py b/openstackclient/tests/unit/network/v2/test_ip_availability.py
index c929ab82..4bdbddc4 100644
--- a/openstackclient/tests/unit/network/v2/test_ip_availability.py
+++ b/openstackclient/tests/unit/network/v2/test_ip_availability.py
@@ -107,6 +107,7 @@ class TestListIPAvailability(TestIPAvailability):
columns, data = self.cmd.take_action(parsed_args)
filters = {'tenant_id': self.project.id,
+ 'project_id': self.project.id,
'ip_version': 4}
self.network.network_ip_availabilities.assert_called_once_with(
diff --git a/openstackclient/tests/unit/network/v2/test_port.py b/openstackclient/tests/unit/network/v2/test_port.py
index 9312a897..aeb9884a 100644
--- a/openstackclient/tests/unit/network/v2/test_port.py
+++ b/openstackclient/tests/unit/network/v2/test_port.py
@@ -140,6 +140,7 @@ class TestCreatePort(TestPort):
'--binding-profile', 'foo=bar',
'--binding-profile', 'foo2=bar2',
'--network', self._port.network_id,
+ '--dns-name', '8.8.8.8',
'test-port',
]
@@ -156,6 +157,7 @@ class TestCreatePort(TestPort):
('vnic_type', 'macvtap'),
('binding_profile', {'foo': 'bar', 'foo2': 'bar2'}),
('network', self._port.network_id),
+ ('dns_name', '8.8.8.8'),
('name', 'test-port'),
]
@@ -174,6 +176,7 @@ class TestCreatePort(TestPort):
'binding:vnic_type': 'macvtap',
'binding:profile': {'foo': 'bar', 'foo2': 'bar2'},
'network_id': self._port.network_id,
+ 'dns_name': '8.8.8.8',
'name': 'test-port',
})
@@ -241,6 +244,7 @@ class TestCreatePort(TestPort):
'--security-group', secgroup.id,
'test-port',
]
+
verifylist = [
('network', self._port.network_id,),
('enable', True),
@@ -262,6 +266,33 @@ class TestCreatePort(TestPort):
self.assertEqual(ref_columns, columns)
self.assertEqual(ref_data, data)
+ def test_create_port_with_dns_name(self):
+ arglist = [
+ '--network', self._port.network_id,
+ '--dns-name', '8.8.8.8',
+ 'test-port',
+ ]
+ verifylist = [
+ ('network', self._port.network_id,),
+ ('enable', True),
+ ('dns_name', '8.8.8.8'),
+ ('name', 'test-port'),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = (self.cmd.take_action(parsed_args))
+
+ self.network.create_port.assert_called_once_with(**{
+ 'admin_state_up': True,
+ 'network_id': self._port.network_id,
+ 'dns_name': '8.8.8.8',
+ 'name': 'test-port',
+ })
+
+ ref_columns, ref_data = self._get_common_cols_data(self._port)
+ self.assertEqual(ref_columns, columns)
+ self.assertEqual(ref_data, data)
+
def test_create_with_security_groups(self):
sg_1 = network_fakes.FakeSecurityGroup.create_one_security_group()
sg_2 = network_fakes.FakeSecurityGroup.create_one_security_group()
@@ -676,6 +707,25 @@ class TestSetPort(TestPort):
self.network.update_port.assert_called_once_with(self._port, **attrs)
self.assertIsNone(result)
+ def test_set_dns_name(self):
+ arglist = [
+ '--dns-name', '8.8.8.8',
+ self._port.name,
+ ]
+ verifylist = [
+ ('dns_name', '8.8.8.8'),
+ ('port', self._port.name),
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ result = self.cmd.take_action(parsed_args)
+
+ attrs = {
+ 'dns_name': '8.8.8.8',
+ }
+ self.network.update_port.assert_called_once_with(self._port, **attrs)
+ self.assertIsNone(result)
+
def test_append_fixed_ip(self):
_testport = network_fakes.FakePort.create_one_port(
{'fixed_ips': [{'ip_address': '0.0.0.1'}]})
diff --git a/openstackclient/tests/unit/volume/v1/test_snapshot.py b/openstackclient/tests/unit/volume/v1/test_snapshot.py
index 8e30d6a9..fd878f45 100644
--- a/openstackclient/tests/unit/volume/v1/test_snapshot.py
+++ b/openstackclient/tests/unit/volume/v1/test_snapshot.py
@@ -268,6 +268,7 @@ class TestSnapshotList(TestSnapshot):
super(TestSnapshotList, self).setUp()
self.volumes_mock.list.return_value = [self.volume]
+ self.volumes_mock.get.return_value = self.volume
self.snapshots_mock.list.return_value = self.snapshots
# Get the command to test
self.cmd = volume_snapshot.ListVolumeSnapshot(self.app, None)
@@ -283,7 +284,13 @@ class TestSnapshotList(TestSnapshot):
columns, data = self.cmd.take_action(parsed_args)
self.snapshots_mock.list.assert_called_once_with(
- search_opts={'all_tenants': False})
+ search_opts={
+ 'all_tenants': False,
+ 'display_name': None,
+ 'status': None,
+ 'volume_id': None
+ }
+ )
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
@@ -300,11 +307,88 @@ class TestSnapshotList(TestSnapshot):
columns, data = self.cmd.take_action(parsed_args)
self.snapshots_mock.list.assert_called_once_with(
- search_opts={'all_tenants': False}
+ search_opts={
+ 'all_tenants': False,
+ 'display_name': None,
+ 'status': None,
+ 'volume_id': None
+ }
)
self.assertEqual(self.columns_long, columns)
self.assertEqual(self.data_long, list(data))
+ def test_snapshot_list_name_option(self):
+ arglist = [
+ '--name', self.snapshots[0].display_name,
+ ]
+ verifylist = [
+ ('all_projects', False),
+ ('long', False),
+ ('name', self.snapshots[0].display_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.snapshots_mock.list.assert_called_once_with(
+ search_opts={
+ 'all_tenants': False,
+ 'display_name': self.snapshots[0].display_name,
+ 'status': None,
+ 'volume_id': None
+ }
+ )
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
+ def test_snapshot_list_status_option(self):
+ arglist = [
+ '--status', self.snapshots[0].status,
+ ]
+ verifylist = [
+ ('all_projects', False),
+ ('long', False),
+ ('status', self.snapshots[0].status),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.snapshots_mock.list.assert_called_once_with(
+ search_opts={
+ 'all_tenants': False,
+ 'display_name': None,
+ 'status': self.snapshots[0].status,
+ 'volume_id': None
+ }
+ )
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
+ def test_snapshot_list_volumeid_option(self):
+ arglist = [
+ '--volume', self.volume.id,
+ ]
+ verifylist = [
+ ('all_projects', False),
+ ('long', False),
+ ('volume', self.volume.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.snapshots_mock.list.assert_called_once_with(
+ search_opts={
+ 'all_tenants': False,
+ 'display_name': None,
+ 'status': None,
+ 'volume_id': self.volume.id
+ }
+ )
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
def test_snapshot_list_all_projects(self):
arglist = [
'--all-projects',
@@ -318,7 +402,13 @@ class TestSnapshotList(TestSnapshot):
columns, data = self.cmd.take_action(parsed_args)
self.snapshots_mock.list.assert_called_once_with(
- search_opts={'all_tenants': True})
+ search_opts={
+ 'all_tenants': True,
+ 'display_name': None,
+ 'status': None,
+ 'volume_id': None
+ }
+ )
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
diff --git a/openstackclient/tests/unit/volume/v2/fakes.py b/openstackclient/tests/unit/volume/v2/fakes.py
index 3137bfb0..d5cd72ec 100644
--- a/openstackclient/tests/unit/volume/v2/fakes.py
+++ b/openstackclient/tests/unit/volume/v2/fakes.py
@@ -480,7 +480,7 @@ class FakeBackup(object):
If backups list is provided, then initialize the Mock object with the
list. Otherwise create one.
- :param List volumes:
+ :param List backups:
A list of FakeResource objects faking backups
:param Integer count:
The number of backups to be faked
@@ -764,7 +764,7 @@ class FakeQos(object):
If qoses list is provided, then initialize the Mock object with the
list. Otherwise create one.
- :param List volumes:
+ :param List qoses:
A list of FakeResource objects faking qoses
:param Integer count:
The number of qoses to be faked
@@ -837,7 +837,7 @@ class FakeSnapshot(object):
If snapshots list is provided, then initialize the Mock object with the
list. Otherwise create one.
- :param List volumes:
+ :param List snapshots:
A list of FakeResource objects faking snapshots
:param Integer count:
The number of snapshots to be faked
diff --git a/openstackclient/tests/unit/volume/v2/test_consistency_group.py b/openstackclient/tests/unit/volume/v2/test_consistency_group.py
index 5beb6ef2..bc99ca8d 100644
--- a/openstackclient/tests/unit/volume/v2/test_consistency_group.py
+++ b/openstackclient/tests/unit/volume/v2/test_consistency_group.py
@@ -32,6 +32,10 @@ class TestConsistencyGroup(volume_fakes.TestVolume):
self.app.client_manager.volume.consistencygroups)
self.consistencygroups_mock.reset_mock()
+ self.cgsnapshots_mock = (
+ self.app.client_manager.volume.cgsnapshots)
+ self.cgsnapshots_mock.reset_mock()
+
self.types_mock = self.app.client_manager.volume.volume_types
self.types_mock.reset_mock()
@@ -41,6 +45,11 @@ class TestConsistencyGroupCreate(TestConsistencyGroup):
volume_type = volume_fakes.FakeType.create_one_type()
new_consistency_group = (
volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
+ consistency_group_snapshot = (
+ volume_fakes.
+ FakeConsistencyGroupSnapshot.
+ create_one_consistency_group_snapshot()
+ )
columns = (
'availability_zone',
@@ -70,6 +79,8 @@ class TestConsistencyGroupCreate(TestConsistencyGroup):
self.consistencygroups_mock.get.return_value = (
self.new_consistency_group)
self.types_mock.get.return_value = self.volume_type
+ self.cgsnapshots_mock.get.return_value = (
+ self.consistency_group_snapshot)
# Get the command object to test
self.cmd = consistency_group.CreateConsistencyGroup(self.app, None)
@@ -164,6 +175,34 @@ class TestConsistencyGroupCreate(TestConsistencyGroup):
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, data)
+ def test_consistency_group_create_from_snapshot(self):
+ arglist = [
+ '--consistency-group-snapshot', self.consistency_group_snapshot.id,
+ '--description', self.new_consistency_group.description,
+ self.new_consistency_group.name,
+ ]
+ verifylist = [
+ ('consistency_group_snapshot', self.consistency_group_snapshot.id),
+ ('description', self.new_consistency_group.description),
+ ('name', self.new_consistency_group.name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.types_mock.get.assert_not_called()
+ self.cgsnapshots_mock.get.assert_called_once_with(
+ self.consistency_group_snapshot.id)
+ self.consistencygroups_mock.create_from_src.assert_called_with(
+ self.consistency_group_snapshot.id,
+ None,
+ name=self.new_consistency_group.name,
+ description=self.new_consistency_group.description,
+ )
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, data)
+
class TestConsistencyGroupDelete(TestConsistencyGroup):
@@ -355,6 +394,70 @@ class TestConsistencyGroupList(TestConsistencyGroup):
self.assertEqual(self.data_long, list(data))
+class TestConsistencyGroupSet(TestConsistencyGroup):
+
+ consistency_group = (
+ volume_fakes.FakeConsistencyGroup.create_one_consistency_group())
+
+ def setUp(self):
+ super(TestConsistencyGroupSet, self).setUp()
+
+ self.consistencygroups_mock.get.return_value = (
+ self.consistency_group)
+ # Get the command object to test
+ self.cmd = consistency_group.SetConsistencyGroup(self.app, None)
+
+ def test_consistency_group_set_name(self):
+ new_name = 'new_name'
+ arglist = [
+ '--name', new_name,
+ self.consistency_group.id,
+ ]
+ verifylist = [
+ ('name', new_name),
+ ('description', None),
+ ('consistency_group', self.consistency_group.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'name': new_name,
+ }
+ self.consistencygroups_mock.update.assert_called_once_with(
+ self.consistency_group.id,
+ **kwargs
+ )
+ self.assertIsNone(result)
+
+ def test_consistency_group_set_description(self):
+ new_description = 'new_description'
+ arglist = [
+ '--description', new_description,
+ self.consistency_group.id,
+ ]
+ verifylist = [
+ ('name', None),
+ ('description', new_description),
+ ('consistency_group', self.consistency_group.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'description': new_description,
+ }
+ self.consistencygroups_mock.update.assert_called_once_with(
+ self.consistency_group.id,
+ **kwargs
+ )
+ self.assertIsNone(result)
+
+
class TestConsistencyGroupShow(TestConsistencyGroup):
columns = (
'availability_zone',
diff --git a/openstackclient/tests/unit/volume/v2/test_snapshot.py b/openstackclient/tests/unit/volume/v2/test_snapshot.py
index 1d1693ad..cedf21a9 100644
--- a/openstackclient/tests/unit/volume/v2/test_snapshot.py
+++ b/openstackclient/tests/unit/volume/v2/test_snapshot.py
@@ -292,6 +292,7 @@ class TestSnapshotList(TestSnapshot):
super(TestSnapshotList, self).setUp()
self.volumes_mock.list.return_value = [self.volume]
+ self.volumes_mock.get.return_value = self.volume
self.snapshots_mock.list.return_value = self.snapshots
# Get the command to test
self.cmd = volume_snapshot.ListVolumeSnapshot(self.app, None)
@@ -300,14 +301,21 @@ class TestSnapshotList(TestSnapshot):
arglist = []
verifylist = [
('all_projects', False),
- ("long", False)
+ ('long', False)
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.snapshots_mock.list.assert_called_once_with(
- limit=None, marker=None, search_opts={'all_tenants': False})
+ limit=None, marker=None,
+ search_opts={
+ 'all_tenants': False,
+ 'name': None,
+ 'status': None,
+ 'volume_id': None
+ }
+ )
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
@@ -330,7 +338,12 @@ class TestSnapshotList(TestSnapshot):
self.snapshots_mock.list.assert_called_once_with(
limit=2,
marker=self.snapshots[0].id,
- search_opts={'all_tenants': False}
+ search_opts={
+ 'all_tenants': False,
+ 'name': None,
+ 'status': None,
+ 'volume_id': None
+ }
)
self.assertEqual(self.columns_long, columns)
self.assertEqual(self.data_long, list(data))
@@ -348,7 +361,89 @@ class TestSnapshotList(TestSnapshot):
columns, data = self.cmd.take_action(parsed_args)
self.snapshots_mock.list.assert_called_once_with(
- limit=None, marker=None, search_opts={'all_tenants': True})
+ limit=None, marker=None,
+ search_opts={
+ 'all_tenants': True,
+ 'name': None,
+ 'status': None,
+ 'volume_id': None
+ }
+ )
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
+ def test_snapshot_list_name_option(self):
+ arglist = [
+ '--name', self.snapshots[0].name,
+ ]
+ verifylist = [
+ ('all_projects', False),
+ ('long', False),
+ ('name', self.snapshots[0].name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.snapshots_mock.list.assert_called_once_with(
+ limit=None, marker=None,
+ search_opts={
+ 'all_tenants': False,
+ 'name': self.snapshots[0].name,
+ 'status': None,
+ 'volume_id': None
+ }
+ )
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
+ def test_snapshot_list_status_option(self):
+ arglist = [
+ '--status', self.snapshots[0].status,
+ ]
+ verifylist = [
+ ('all_projects', False),
+ ('long', False),
+ ('status', self.snapshots[0].status),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.snapshots_mock.list.assert_called_once_with(
+ limit=None, marker=None,
+ search_opts={
+ 'all_tenants': False,
+ 'name': None,
+ 'status': self.snapshots[0].status,
+ 'volume_id': None
+ }
+ )
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, list(data))
+
+ def test_snapshot_list_volumeid_option(self):
+ arglist = [
+ '--volume', self.volume.id,
+ ]
+ verifylist = [
+ ('all_projects', False),
+ ('long', False),
+ ('volume', self.volume.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.snapshots_mock.list.assert_called_once_with(
+ limit=None, marker=None,
+ search_opts={
+ 'all_tenants': False,
+ 'name': None,
+ 'status': None,
+ 'volume_id': self.volume.id
+ }
+ )
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
diff --git a/openstackclient/tests/unit/volume/v2/test_volume_host.py b/openstackclient/tests/unit/volume/v2/test_volume_host.py
new file mode 100644
index 00000000..aad7bb0b
--- /dev/null
+++ b/openstackclient/tests/unit/volume/v2/test_volume_host.py
@@ -0,0 +1,86 @@
+#
+# 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.
+#
+
+from openstackclient.tests.unit.volume.v2 import fakes as host_fakes
+from openstackclient.volume.v2 import volume_host
+
+
+class TestVolumeHost(host_fakes.TestVolume):
+
+ def setUp(self):
+ super(TestVolumeHost, self).setUp()
+
+ self.host_mock = self.app.client_manager.volume.services
+ self.host_mock.reset_mock()
+
+
+class TestVolumeHostSet(TestVolumeHost):
+
+ service = host_fakes.FakeService.create_one_service()
+
+ def setUp(self):
+ super(TestVolumeHostSet, self).setUp()
+
+ self.host_mock.freeze_host.return_value = None
+ self.host_mock.thaw_host.return_value = None
+
+ self.cmd = volume_host.SetVolumeHost(self.app, None)
+
+ def test_volume_host_set_nothing(self):
+ arglist = [
+ self.service.host,
+ ]
+ verifylist = [
+ ('host', self.service.host),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ result = self.cmd.take_action(parsed_args)
+
+ self.host_mock.freeze_host.assert_not_called()
+ self.host_mock.thaw_host.assert_not_called()
+ self.assertIsNone(result)
+
+ def test_volume_host_set_enable(self):
+ arglist = [
+ '--enable',
+ self.service.host,
+ ]
+ verifylist = [
+ ('enable', True),
+ ('host', self.service.host),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ self.host_mock.thaw_host.assert_called_with(self.service.host)
+ self.host_mock.freeze_host.assert_not_called()
+ self.assertIsNone(result)
+
+ def test_volume_host_set_disable(self):
+ arglist = [
+ '--disable',
+ self.service.host,
+ ]
+ verifylist = [
+ ('disable', True),
+ ('host', self.service.host),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ self.host_mock.freeze_host.assert_called_with(self.service.host)
+ self.host_mock.thaw_host.assert_not_called()
+ self.assertIsNone(result)