summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2017-10-27 09:50:50 -0500
committerDean Troyer <dtroyer@gmail.com>2017-10-27 20:19:17 +0000
commit40976f006271903a29285b5bdbb5422527212a45 (patch)
tree79c3f34e7064f5b7632eba65cb5f8146c494a3f2 /openstackclient/tests
parentd215982ce04302a95086e574322046ef5a4b439c (diff)
downloadpython-openstackclient-40976f006271903a29285b5bdbb5422527212a45.tar.gz
Add server rescue unit tests
Added to support the new options to server rescue command. Change-Id: Ia9dca85e05488fa8d5f57cd5e8920e94b8f65c22
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index a1225c30..660f4f97 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -2170,6 +2170,91 @@ class TestServerRemoveFixedIP(TestServer):
self.assertIsNone(result)
+class TestServerRescue(TestServer):
+
+ def setUp(self):
+ super(TestServerRescue, self).setUp()
+
+ # Return value for utils.find_resource for image
+ self.image = image_fakes.FakeImage.create_one_image()
+ self.images_mock.get.return_value = self.image
+
+ new_server = compute_fakes.FakeServer.create_one_server()
+ attrs = {
+ 'id': new_server.id,
+ 'image': {
+ 'id': self.image.id,
+ },
+ 'networks': {},
+ 'adminPass': 'passw0rd',
+ }
+ methods = {
+ 'rescue': new_server,
+ }
+ self.server = compute_fakes.FakeServer.create_one_server(
+ attrs=attrs,
+ methods=methods,
+ )
+
+ # Return value for utils.find_resource for server
+ self.servers_mock.get.return_value = self.server
+
+ self.cmd = server.RescueServer(self.app, None)
+
+ def test_rescue_with_current_image(self):
+ arglist = [
+ self.server.id,
+ ]
+ verifylist = [
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # Get the command object to test
+ self.cmd.take_action(parsed_args)
+
+ self.servers_mock.get.assert_called_with(self.server.id)
+ self.server.rescue.assert_called_with(image=None, password=None)
+
+ def test_rescue_with_new_image(self):
+ new_image = image_fakes.FakeImage.create_one_image()
+ self.images_mock.get.return_value = new_image
+ arglist = [
+ '--image', new_image.id,
+ self.server.id,
+ ]
+ verifylist = [
+ ('image', new_image.id),
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # Get the command object to test
+ self.cmd.take_action(parsed_args)
+
+ self.servers_mock.get.assert_called_with(self.server.id)
+ self.images_mock.get.assert_called_with(new_image.id)
+ self.server.rescue.assert_called_with(image=new_image, password=None)
+
+ def test_rescue_with_current_image_and_password(self):
+ password = 'password-xxx'
+ arglist = [
+ '--password', password,
+ self.server.id,
+ ]
+ verifylist = [
+ ('password', password),
+ ('server', self.server.id),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # Get the command object to test
+ self.cmd.take_action(parsed_args)
+
+ self.servers_mock.get.assert_called_with(self.server.id)
+ self.server.rescue.assert_called_with(image=None, password=password)
+
+
class TestServerRemoveFloatingIP(TestServer):
def setUp(self):