Skip to content

Commit a080227

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "TestServerGeneral: Add test for _prep_server_detail()"
2 parents e79860e + 17f3685 commit a080227

File tree

1 file changed

+44
-2
lines changed

1 file changed

+44
-2
lines changed

openstackclient/tests/compute/v2/test_server.py

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#
1515

1616
import mock
17-
import testtools
1817

1918
from mock import call
2019
from openstackclient.common import exceptions
@@ -1066,7 +1065,7 @@ def test_unshelve_multi_servers(self):
10661065
self.run_method_with_servers('unshelve', 3)
10671066

10681067

1069-
class TestServerGeneral(testtools.TestCase):
1068+
class TestServerGeneral(TestServer):
10701069
OLD = {
10711070
'private': [
10721071
{
@@ -1160,3 +1159,46 @@ def test_format_servers_list_networks(self):
11601159
'actual = %s\n' %
11611160
(data_1, data_2, networks_format))
11621161
self.assertIn(networks_format, (data_1, data_2), msg)
1162+
1163+
@mock.patch('openstackclient.common.utils.find_resource')
1164+
def test_prep_server_detail(self, find_resource):
1165+
# Setup mock method return value. utils.find_resource() will be called
1166+
# twice in _prep_server_detail():
1167+
# - The first time, return image info.
1168+
# - The second time, return flavor info.
1169+
_image = image_fakes.FakeImage.create_one_image()
1170+
_flavor = compute_fakes.FakeFlavor.create_one_flavor()
1171+
find_resource.side_effect = [_image, _flavor]
1172+
1173+
# compute_client.servers.get() will be called once, return server info.
1174+
server_info = {
1175+
'image': {u'id': _image.id},
1176+
'flavor': {u'id': _flavor.id},
1177+
'tenant_id': u'tenant-id-xxx',
1178+
'networks': {u'public': [u'10.20.30.40', u'2001:db8::f']},
1179+
'links': u'http://xxx.yyy.com',
1180+
}
1181+
_server = compute_fakes.FakeServer.create_one_server(attrs=server_info)
1182+
self.servers_mock.get.return_value = _server
1183+
1184+
# Prepare result data.
1185+
info = {
1186+
'id': _server.id,
1187+
'name': _server.name,
1188+
'addresses': u'public=10.20.30.40, 2001:db8::f',
1189+
'flavor': u'%s (%s)' % (_flavor.name, _flavor.id),
1190+
'image': u'%s (%s)' % (_image.name, _image.id),
1191+
'project_id': u'tenant-id-xxx',
1192+
'properties': '',
1193+
}
1194+
1195+
# Call _prep_server_detail().
1196+
server_detail = server._prep_server_detail(
1197+
self.app.client_manager.compute,
1198+
_server
1199+
)
1200+
# 'networks' is used to create _server. Remove it.
1201+
server_detail.pop('networks')
1202+
1203+
# Check the results.
1204+
self.assertDictEqual(info, server_detail)

0 commit comments

Comments
 (0)