summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit/compute
diff options
context:
space:
mode:
authorChen Hanxiao <chenhx@certusnet.com.cn>2018-01-19 14:30:18 +0800
committerChen Hanxiao <chenhx@certusnet.com.cn>2018-03-28 16:03:45 +0800
commit447d5d9e344060be4f284ad56b430b20eb190c2b (patch)
treea5321ea94d9118b42761af2148139ef7dfa4b5bc /openstackclient/tests/unit/compute
parent3f99dbac342b52ccecc78c32f54047b18726e320 (diff)
downloadpython-openstackclient-447d5d9e344060be4f284ad56b430b20eb190c2b.tar.gz
Add --image-property parameter in 'server create'
add --image-property option, just like --image-with of novaclient did. Change-Id: Ic1a8976559255529a8785b1b301a0307812433cb Signed-off-by: Chen Hanxiao <chenhx@certusnet.com.cn>
Diffstat (limited to 'openstackclient/tests/unit/compute')
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py158
1 files changed, 158 insertions, 0 deletions
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index 87c9a985..feb9d1f8 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -1528,6 +1528,164 @@ class TestServerCreate(TestServer):
self.cmd.take_action,
parsed_args)
+ def test_server_create_image_property(self):
+ arglist = [
+ '--image-property', 'hypervisor_type=qemu',
+ '--flavor', 'flavor1',
+ '--nic', 'none',
+ self.new_server.name,
+ ]
+ verifylist = [
+ ('image_property', {'hypervisor_type': 'qemu'}),
+ ('flavor', 'flavor1'),
+ ('nic', ['none']),
+ ('config_drive', False),
+ ('server_name', self.new_server.name),
+ ]
+ _image = image_fakes.FakeImage.create_one_image()
+ # create a image_info as the side_effect of the fake image_list()
+ image_info = {
+ 'id': _image.id,
+ 'name': _image.name,
+ 'owner': _image.owner,
+ 'hypervisor_type': 'qemu',
+ }
+ self.api_mock = mock.Mock()
+ self.api_mock.image_list.side_effect = [
+ [image_info], [],
+ ]
+ self.app.client_manager.image.api = self.api_mock
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = dict(
+ files={},
+ reservation_id=None,
+ min_count=1,
+ max_count=1,
+ security_groups=[],
+ userdata=None,
+ key_name=None,
+ availability_zone=None,
+ block_device_mapping_v2=[],
+ nics='none',
+ meta=None,
+ scheduler_hints={},
+ config_drive=None,
+ )
+ # ServerManager.create(name, image, flavor, **kwargs)
+ self.servers_mock.create.assert_called_with(
+ self.new_server.name,
+ image_info,
+ self.flavor,
+ **kwargs
+ )
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.datalist(), data)
+
+ def test_server_create_image_property_multi(self):
+ arglist = [
+ '--image-property', 'hypervisor_type=qemu',
+ '--image-property', 'hw_disk_bus=ide',
+ '--flavor', 'flavor1',
+ '--nic', 'none',
+ self.new_server.name,
+ ]
+ verifylist = [
+ ('image_property', {'hypervisor_type': 'qemu',
+ 'hw_disk_bus': 'ide'}),
+ ('flavor', 'flavor1'),
+ ('nic', ['none']),
+ ('config_drive', False),
+ ('server_name', self.new_server.name),
+ ]
+ _image = image_fakes.FakeImage.create_one_image()
+ # create a image_info as the side_effect of the fake image_list()
+ image_info = {
+ 'id': _image.id,
+ 'name': _image.name,
+ 'owner': _image.owner,
+ 'hypervisor_type': 'qemu',
+ 'hw_disk_bus': 'ide',
+ }
+ self.api_mock = mock.Mock()
+ self.api_mock.image_list.side_effect = [
+ [image_info], [],
+ ]
+ self.app.client_manager.image.api = self.api_mock
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = dict(
+ files={},
+ reservation_id=None,
+ min_count=1,
+ max_count=1,
+ security_groups=[],
+ userdata=None,
+ key_name=None,
+ availability_zone=None,
+ block_device_mapping_v2=[],
+ nics='none',
+ meta=None,
+ scheduler_hints={},
+ config_drive=None,
+ )
+ # ServerManager.create(name, image, flavor, **kwargs)
+ self.servers_mock.create.assert_called_with(
+ self.new_server.name,
+ image_info,
+ self.flavor,
+ **kwargs
+ )
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.datalist(), data)
+
+ def test_server_create_image_property_missed(self):
+ arglist = [
+ '--image-property', 'hypervisor_type=qemu',
+ '--image-property', 'hw_disk_bus=virtio',
+ '--flavor', 'flavor1',
+ '--nic', 'none',
+ self.new_server.name,
+ ]
+ verifylist = [
+ ('image_property', {'hypervisor_type': 'qemu',
+ 'hw_disk_bus': 'virtio'}),
+ ('flavor', 'flavor1'),
+ ('nic', ['none']),
+ ('config_drive', False),
+ ('server_name', self.new_server.name),
+ ]
+ _image = image_fakes.FakeImage.create_one_image()
+ # create a image_info as the side_effect of the fake image_list()
+ image_info = {
+ 'id': _image.id,
+ 'name': _image.name,
+ 'owner': _image.owner,
+ 'hypervisor_type': 'qemu',
+ 'hw_disk_bus': 'ide',
+ }
+ self.api_mock = mock.Mock()
+ self.api_mock.image_list.side_effect = [
+ [image_info], [],
+ ]
+ self.app.client_manager.image.api = self.api_mock
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.assertRaises(exceptions.CommandError,
+ self.cmd.take_action,
+ parsed_args)
+
class TestServerDelete(TestServer):