Skip to content

Commit 40976f0

Browse files
author
Dean Troyer
committed
Add server rescue unit tests
Added to support the new options to server rescue command. Change-Id: Ia9dca85e05488fa8d5f57cd5e8920e94b8f65c22
1 parent d215982 commit 40976f0

1 file changed

Lines changed: 85 additions & 0 deletions

File tree

openstackclient/tests/unit/compute/v2/test_server.py

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2170,6 +2170,91 @@ def test_server_remove_fixed_ip(self):
21702170
self.assertIsNone(result)
21712171

21722172

2173+
class TestServerRescue(TestServer):
2174+
2175+
def setUp(self):
2176+
super(TestServerRescue, self).setUp()
2177+
2178+
# Return value for utils.find_resource for image
2179+
self.image = image_fakes.FakeImage.create_one_image()
2180+
self.images_mock.get.return_value = self.image
2181+
2182+
new_server = compute_fakes.FakeServer.create_one_server()
2183+
attrs = {
2184+
'id': new_server.id,
2185+
'image': {
2186+
'id': self.image.id,
2187+
},
2188+
'networks': {},
2189+
'adminPass': 'passw0rd',
2190+
}
2191+
methods = {
2192+
'rescue': new_server,
2193+
}
2194+
self.server = compute_fakes.FakeServer.create_one_server(
2195+
attrs=attrs,
2196+
methods=methods,
2197+
)
2198+
2199+
# Return value for utils.find_resource for server
2200+
self.servers_mock.get.return_value = self.server
2201+
2202+
self.cmd = server.RescueServer(self.app, None)
2203+
2204+
def test_rescue_with_current_image(self):
2205+
arglist = [
2206+
self.server.id,
2207+
]
2208+
verifylist = [
2209+
('server', self.server.id),
2210+
]
2211+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
2212+
2213+
# Get the command object to test
2214+
self.cmd.take_action(parsed_args)
2215+
2216+
self.servers_mock.get.assert_called_with(self.server.id)
2217+
self.server.rescue.assert_called_with(image=None, password=None)
2218+
2219+
def test_rescue_with_new_image(self):
2220+
new_image = image_fakes.FakeImage.create_one_image()
2221+
self.images_mock.get.return_value = new_image
2222+
arglist = [
2223+
'--image', new_image.id,
2224+
self.server.id,
2225+
]
2226+
verifylist = [
2227+
('image', new_image.id),
2228+
('server', self.server.id),
2229+
]
2230+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
2231+
2232+
# Get the command object to test
2233+
self.cmd.take_action(parsed_args)
2234+
2235+
self.servers_mock.get.assert_called_with(self.server.id)
2236+
self.images_mock.get.assert_called_with(new_image.id)
2237+
self.server.rescue.assert_called_with(image=new_image, password=None)
2238+
2239+
def test_rescue_with_current_image_and_password(self):
2240+
password = 'password-xxx'
2241+
arglist = [
2242+
'--password', password,
2243+
self.server.id,
2244+
]
2245+
verifylist = [
2246+
('password', password),
2247+
('server', self.server.id),
2248+
]
2249+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
2250+
2251+
# Get the command object to test
2252+
self.cmd.take_action(parsed_args)
2253+
2254+
self.servers_mock.get.assert_called_with(self.server.id)
2255+
self.server.rescue.assert_called_with(image=None, password=password)
2256+
2257+
21732258
class TestServerRemoveFloatingIP(TestServer):
21742259

21752260
def setUp(self):

0 commit comments

Comments
 (0)