summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit/compute
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2021-01-15 04:09:58 +0000
committerGerrit Code Review <review@openstack.org>2021-01-15 04:09:58 +0000
commit3864ceea269a606c47dc8a26691d044c28fd3c87 (patch)
treeb0d2cc549186d792f496d7b6be22f4b3c3054c29 /openstackclient/tests/unit/compute
parent1febc8cd0335c6f9ffada9a3b24589b55b76f1af (diff)
parentca7f23d0d1876dc53ef4d5ecbf2c5f367aafe13e (diff)
downloadpython-openstackclient-3864ceea269a606c47dc8a26691d044c28fd3c87.tar.gz
Merge "compute: Add 'server volume update' command"
Diffstat (limited to 'openstackclient/tests/unit/compute')
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server_volume.py120
1 files changed, 120 insertions, 0 deletions
diff --git a/openstackclient/tests/unit/compute/v2/test_server_volume.py b/openstackclient/tests/unit/compute/v2/test_server_volume.py
index d09c2874..4d4916b7 100644
--- a/openstackclient/tests/unit/compute/v2/test_server_volume.py
+++ b/openstackclient/tests/unit/compute/v2/test_server_volume.py
@@ -12,6 +12,7 @@
#
from novaclient import api_versions
+from osc_lib import exceptions
from openstackclient.compute.v2 import server_volume
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
@@ -165,3 +166,122 @@ class TestServerVolumeList(TestServerVolume):
)
self.servers_volumes_mock.get_server_volumes.assert_called_once_with(
self.server.id)
+
+
+class TestServerVolumeUpdate(TestServerVolume):
+
+ def setUp(self):
+ super().setUp()
+
+ self.server = compute_fakes.FakeServer.create_one_server()
+ self.servers_mock.get.return_value = self.server
+
+ # Get the command object to test
+ self.cmd = server_volume.UpdateServerVolume(self.app, None)
+
+ def test_server_volume_update(self):
+
+ arglist = [
+ self.server.id,
+ 'foo',
+ ]
+ verifylist = [
+ ('server', self.server.id),
+ ('volume', 'foo'),
+ ('delete_on_termination', None),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ # This is a no-op
+ self.servers_volumes_mock.update_server_volume.assert_not_called()
+ self.assertIsNone(result)
+
+ def test_server_volume_update_with_delete_on_termination(self):
+ self.app.client_manager.compute.api_version = \
+ api_versions.APIVersion('2.85')
+
+ arglist = [
+ self.server.id,
+ 'foo',
+ '--delete-on-termination',
+ ]
+ verifylist = [
+ ('server', self.server.id),
+ ('volume', 'foo'),
+ ('delete_on_termination', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ self.servers_volumes_mock.update_server_volume.assert_called_once_with(
+ self.server.id, 'foo', 'foo',
+ delete_on_termination=True)
+ self.assertIsNone(result)
+
+ def test_server_volume_update_with_preserve_on_termination(self):
+ self.app.client_manager.compute.api_version = \
+ api_versions.APIVersion('2.85')
+
+ arglist = [
+ self.server.id,
+ 'foo',
+ '--preserve-on-termination',
+ ]
+ verifylist = [
+ ('server', self.server.id),
+ ('volume', 'foo'),
+ ('delete_on_termination', False),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+
+ self.servers_volumes_mock.update_server_volume.assert_called_once_with(
+ self.server.id, 'foo', 'foo',
+ delete_on_termination=False)
+ self.assertIsNone(result)
+
+ def test_server_volume_update_with_delete_on_termination_pre_v285(self):
+ self.app.client_manager.compute.api_version = \
+ api_versions.APIVersion('2.84')
+
+ arglist = [
+ self.server.id,
+ 'foo',
+ '--delete-on-termination',
+ ]
+ verifylist = [
+ ('server', self.server.id),
+ ('volume', 'foo'),
+ ('delete_on_termination', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.assertRaises(
+ exceptions.CommandError,
+ self.cmd.take_action,
+ parsed_args)
+
+ def test_server_volume_update_with_preserve_on_termination_pre_v285(self):
+ self.app.client_manager.compute.api_version = \
+ api_versions.APIVersion('2.84')
+
+ arglist = [
+ self.server.id,
+ 'foo',
+ '--preserve-on-termination',
+ ]
+ verifylist = [
+ ('server', self.server.id),
+ ('volume', 'foo'),
+ ('delete_on_termination', False),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.assertRaises(
+ exceptions.CommandError,
+ self.cmd.take_action,
+ parsed_args)