summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit/volume/v1
diff options
context:
space:
mode:
authorHuanxuan Ao <huanxuan.ao@easystack.cn>2016-09-27 12:27:05 +0800
committerHuanxuan Ao <huanxuan.ao@easystack.cn>2016-09-28 10:13:56 +0800
commitc9e0c01f67a00e63bb5d8b5781d7e8e87b39136c (patch)
treee7eba5ad18742e06fa3232214ab252cb6726ad23 /openstackclient/tests/unit/volume/v1
parent8d63b8b263ca4011761b062331d53d9b53b5031d (diff)
downloadpython-openstackclient-c9e0c01f67a00e63bb5d8b5781d7e8e87b39136c.tar.gz
Add and modify options for "volume create" command
1.Add mutually exclusive options into a mutually exclusive group. 2.Add "--source-replicated", "--consistency-group", "--hint" and "multi-attach" options 3.Make --size option to be optional under some cases Closes-Bug: #1568005 Closes-Bug: #1627913 Implements: bp implement-cinder-features Co-Authored-By: Roman Vasilets <rvasilets@mirantis.com> Change-Id: I2c4c3073195d33774e477f4d7f22e383b14b41dd
Diffstat (limited to 'openstackclient/tests/unit/volume/v1')
-rw-r--r--openstackclient/tests/unit/volume/v1/test_volume.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/openstackclient/tests/unit/volume/v1/test_volume.py b/openstackclient/tests/unit/volume/v1/test_volume.py
index 895f1f87..73c00844 100644
--- a/openstackclient/tests/unit/volume/v1/test_volume.py
+++ b/openstackclient/tests/unit/volume/v1/test_volume.py
@@ -23,6 +23,7 @@ from osc_lib import utils
from openstackclient.tests.unit import fakes
from openstackclient.tests.unit.identity.v2_0 import fakes as identity_fakes
+from openstackclient.tests.unit import utils as tests_utils
from openstackclient.tests.unit.volume.v1 import fakes as volume_fakes
from openstackclient.volume.v1 import volume
@@ -411,6 +412,67 @@ class TestVolumeCreate(TestVolume):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist, data)
+ def test_volume_create_with_source(self):
+ self.volumes_mock.get.return_value = self.new_volume
+ arglist = [
+ '--source', self.new_volume.id,
+ self.new_volume.display_name,
+ ]
+ verifylist = [
+ ('source', self.new_volume.id),
+ ('name', self.new_volume.display_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.volumes_mock.create.assert_called_with(
+ None,
+ None,
+ self.new_volume.id,
+ self.new_volume.display_name,
+ None,
+ None,
+ None,
+ None,
+ None,
+ None,
+ None,
+ )
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.datalist, data)
+
+ def test_volume_create_without_size(self):
+ arglist = [
+ self.new_volume.display_name,
+ ]
+ verifylist = [
+ ('name', self.new_volume.display_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.assertRaises(exceptions.CommandError, self.cmd.take_action,
+ parsed_args)
+
+ def test_volume_create_with_multi_source(self):
+ arglist = [
+ '--image', 'source_image',
+ '--source', 'source_volume',
+ '--snapshot', 'source_snapshot',
+ '--size', str(self.new_volume.size),
+ self.new_volume.display_name,
+ ]
+ verifylist = [
+ ('image', 'source_image'),
+ ('source', 'source_volume'),
+ ('snapshot', 'source_snapshot'),
+ ('size', self.new_volume.size),
+ ('name', self.new_volume.display_name),
+ ]
+
+ self.assertRaises(tests_utils.ParserException, self.check_parser,
+ self.cmd, arglist, verifylist)
+
class TestVolumeDelete(TestVolume):