summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorHuanxuan Ao <huanxuan.ao@easystack.cn>2016-09-21 15:08:14 +0800
committerHuanxuan Ao <huanxuan.ao@easystack.cn>2016-09-21 15:47:55 +0800
commitbba5c9047f81439a18e4e8be434f51abab83a24a (patch)
tree8ee039aaa4816045efc7ce5e9d15d805eda79b66 /openstackclient
parent4a8b802d6b1b4de4979260234b0fda4b18a01699 (diff)
downloadpython-openstackclient-bba5c9047f81439a18e4e8be434f51abab83a24a.tar.gz
Fix "volume unset" command pass normally when nothing specified
When nothing specified in "volume unset" command, there will be an error message says that the "--properties" option is required, it is unusual behaviour, this patch fix it and also add unit test for it. Also, this patch add unit test for "volume show" command by the way. Change-Id: I5b5d587670acf0af4262b8521292455bf9f60fe5 Partial-bug: #1588588
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/tests/unit/volume/v1/test_volume.py99
-rw-r--r--openstackclient/volume/v1/volume.py2
2 files changed, 99 insertions, 2 deletions
diff --git a/openstackclient/tests/unit/volume/v1/test_volume.py b/openstackclient/tests/unit/volume/v1/test_volume.py
index 6fe63941..895f1f87 100644
--- a/openstackclient/tests/unit/volume/v1/test_volume.py
+++ b/openstackclient/tests/unit/volume/v1/test_volume.py
@@ -880,3 +880,102 @@ class TestVolumeSet(TestVolume):
self.cmd.take_action(parsed_args)
self.volumes_mock.set_bootable.assert_called_with(
self._volume.id, verifylist[index][0][1])
+
+
+class TestVolumeShow(TestVolume):
+
+ columns = (
+ 'attachments',
+ 'availability_zone',
+ 'bootable',
+ 'created_at',
+ 'display_description',
+ 'display_name',
+ 'id',
+ 'properties',
+ 'size',
+ 'snapshot_id',
+ 'status',
+ 'type',
+ )
+
+ def setUp(self):
+ super(TestVolumeShow, self).setUp()
+ self._volume = volume_fakes.FakeVolume.create_one_volume()
+ self.datalist = (
+ self._volume.attachments,
+ self._volume.availability_zone,
+ self._volume.bootable,
+ self._volume.created_at,
+ self._volume.display_description,
+ self._volume.display_name,
+ self._volume.id,
+ utils.format_dict(self._volume.metadata),
+ self._volume.size,
+ self._volume.snapshot_id,
+ self._volume.status,
+ self._volume.volume_type,
+ )
+ self.volumes_mock.get.return_value = self._volume
+ # Get the command object to test
+ self.cmd = volume.ShowVolume(self.app, None)
+
+ def test_volume_show(self):
+ arglist = [
+ self._volume.id
+ ]
+ verifylist = [
+ ("volume", self._volume.id)
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+ self.volumes_mock.get.assert_called_with(self._volume.id)
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.datalist, data)
+
+
+class TestVolumeUnset(TestVolume):
+
+ _volume = volume_fakes.FakeVolume.create_one_volume()
+
+ def setUp(self):
+ super(TestVolumeUnset, self).setUp()
+
+ self.volumes_mock.get.return_value = self._volume
+
+ self.volumes_mock.delete_metadata.return_value = None
+ # Get the command object to test
+ self.cmd = volume.UnsetVolume(self.app, None)
+
+ def test_volume_unset_no_options(self):
+ arglist = [
+ self._volume.display_name,
+ ]
+ verifylist = [
+ ('property', None),
+ ('volume', self._volume.display_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+ self.assertIsNone(result)
+
+ def test_volume_unset_property(self):
+ arglist = [
+ '--property', 'myprop',
+ self._volume.display_name,
+ ]
+ verifylist = [
+ ('property', ['myprop']),
+ ('volume', self._volume.display_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ self.volumes_mock.delete_metadata.assert_called_with(
+ self._volume.id, ['myprop']
+ )
+ self.assertIsNone(result)
diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py
index 69bf3803..89fa2014 100644
--- a/openstackclient/volume/v1/volume.py
+++ b/openstackclient/volume/v1/volume.py
@@ -452,10 +452,8 @@ class UnsetVolume(command.Command):
'--property',
metavar='<key>',
action='append',
- default=[],
help=_('Remove a property from volume '
'(repeat option to remove multiple properties)'),
- required=True,
)
return parser