Skip to content

Commit 815cd8a

Browse files
committed
Use class FakeServer in TestServerCreate.
In the current TestServerCreate, there are several problems: 1. The fake create() returns a server with no 'networks' field. The new_server is used to fake the created server which is supposed to be returned by create(), but it has a 'networks' field. They have the same name and id, but they are actually not the same server. As a result, when checking the return value from create(), 'networks' is not checked. 2. The fake server is not accessable in the test functions. So each time a test function wants to get the server name or id, it has to use the constants defined in compute_fakes. This is not good. We should make the fake server accessable in all test functions to ensure they actually get the same server. This patch fix them both by using the new class FakeServer to fake a server. Change-Id: I8ffc8e233f8710034329ed33fccb2c734898ec2d Implements: blueprint osc-unit-test-framework-improvement
1 parent 65e6c7b commit 815cd8a

1 file changed

Lines changed: 68 additions & 38 deletions

File tree

openstackclient/tests/compute/v2/test_server.py

Lines changed: 68 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,16 @@ class TestServerCreate(TestServer):
5858
def setUp(self):
5959
super(TestServerCreate, self).setUp()
6060

61-
self.servers_mock.create.return_value = fakes.FakeResource(
62-
None,
63-
copy.deepcopy(compute_fakes.SERVER),
64-
loaded=True,
65-
)
66-
new_server = fakes.FakeResource(
67-
None,
68-
copy.deepcopy(compute_fakes.SERVER),
69-
loaded=True,
70-
)
71-
new_server.__dict__['networks'] = {}
72-
self.servers_mock.get.return_value = new_server
61+
attrs = {
62+
'networks': {},
63+
}
64+
self.new_server = fakes.FakeServer.create_one_server(attrs=attrs)
65+
66+
# This is the return value for utils.find_resource().
67+
# This is for testing --wait option.
68+
self.servers_mock.get.return_value = self.new_server
69+
70+
self.servers_mock.create.return_value = self.new_server
7371

7472
self.image = fakes.FakeResource(
7573
None,
@@ -97,10 +95,10 @@ def setUp(self):
9795

9896
def test_server_create_no_options(self):
9997
arglist = [
100-
compute_fakes.server_name,
98+
self.new_server.name,
10199
]
102100
verifylist = [
103-
('server_name', compute_fakes.server_name),
101+
('server_name', self.new_server.name),
104102
]
105103
try:
106104
# Missing required args should bail here
@@ -112,13 +110,13 @@ def test_server_create_minimal(self):
112110
arglist = [
113111
'--image', 'image1',
114112
'--flavor', 'flavor1',
115-
compute_fakes.server_name,
113+
self.new_server.name,
116114
]
117115
verifylist = [
118116
('image', 'image1'),
119117
('flavor', 'flavor1'),
120118
('config_drive', False),
121-
('server_name', compute_fakes.server_name),
119+
('server_name', self.new_server.name),
122120
]
123121
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
124122

@@ -143,19 +141,27 @@ def test_server_create_minimal(self):
143141
)
144142
# ServerManager.create(name, image, flavor, **kwargs)
145143
self.servers_mock.create.assert_called_with(
146-
compute_fakes.server_name,
144+
self.new_server.name,
147145
self.image,
148146
self.flavor,
149147
**kwargs
150148
)
151149

152-
collist = ('addresses', 'flavor', 'id', 'name', 'properties')
150+
collist = (
151+
'addresses',
152+
'flavor',
153+
'id',
154+
'name',
155+
'networks',
156+
'properties',
157+
)
153158
self.assertEqual(collist, columns)
154159
datalist = (
155160
'',
156161
'Large ()',
157-
compute_fakes.server_id,
158-
compute_fakes.server_name,
162+
self.new_server.id,
163+
self.new_server.name,
164+
self.new_server.networks,
159165
'',
160166
)
161167
self.assertEqual(datalist, data)
@@ -166,14 +172,14 @@ def test_server_create_with_network(self):
166172
'--flavor', 'flavor1',
167173
'--nic', 'net-id=net1',
168174
'--nic', 'port-id=port1',
169-
compute_fakes.server_name,
175+
self.new_server.name,
170176
]
171177
verifylist = [
172178
('image', 'image1'),
173179
('flavor', 'flavor1'),
174180
('nic', ['net-id=net1', 'port-id=port1']),
175181
('config_drive', False),
176-
('server_name', compute_fakes.server_name),
182+
('server_name', self.new_server.name),
177183
]
178184
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
179185

@@ -219,19 +225,27 @@ def test_server_create_with_network(self):
219225
)
220226
# ServerManager.create(name, image, flavor, **kwargs)
221227
self.servers_mock.create.assert_called_with(
222-
compute_fakes.server_name,
228+
self.new_server.name,
223229
self.image,
224230
self.flavor,
225231
**kwargs
226232
)
227233

228-
collist = ('addresses', 'flavor', 'id', 'name', 'properties')
234+
collist = (
235+
'addresses',
236+
'flavor',
237+
'id',
238+
'name',
239+
'networks',
240+
'properties',
241+
)
229242
self.assertEqual(collist, columns)
230243
datalist = (
231244
'',
232245
'Large ()',
233-
compute_fakes.server_id,
234-
compute_fakes.server_name,
246+
self.new_server.id,
247+
self.new_server.name,
248+
self.new_server.networks,
235249
'',
236250
)
237251
self.assertEqual(datalist, data)
@@ -246,14 +260,14 @@ def test_server_create_userdata(self, mock_open):
246260
'--image', 'image1',
247261
'--flavor', 'flavor1',
248262
'--user-data', 'userdata.sh',
249-
compute_fakes.server_name,
263+
self.new_server.name,
250264
]
251265
verifylist = [
252266
('image', 'image1'),
253267
('flavor', 'flavor1'),
254268
('user_data', 'userdata.sh'),
255269
('config_drive', False),
256-
('server_name', compute_fakes.server_name),
270+
('server_name', self.new_server.name),
257271
]
258272
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
259273

@@ -284,19 +298,27 @@ def test_server_create_userdata(self, mock_open):
284298
)
285299
# ServerManager.create(name, image, flavor, **kwargs)
286300
self.servers_mock.create.assert_called_with(
287-
compute_fakes.server_name,
301+
self.new_server.name,
288302
self.image,
289303
self.flavor,
290304
**kwargs
291305
)
292306

293-
collist = ('addresses', 'flavor', 'id', 'name', 'properties')
307+
collist = (
308+
'addresses',
309+
'flavor',
310+
'id',
311+
'name',
312+
'networks',
313+
'properties',
314+
)
294315
self.assertEqual(collist, columns)
295316
datalist = (
296317
'',
297318
'Large ()',
298-
compute_fakes.server_id,
299-
compute_fakes.server_name,
319+
self.new_server.id,
320+
self.new_server.name,
321+
self.new_server.networks,
300322
'',
301323
)
302324
self.assertEqual(datalist, data)
@@ -306,14 +328,14 @@ def test_server_create_with_block_device_mapping(self):
306328
'--image', 'image1',
307329
'--flavor', compute_fakes.flavor_id,
308330
'--block-device-mapping', compute_fakes.block_device_mapping,
309-
compute_fakes.server_name,
331+
self.new_server.name,
310332
]
311333
verifylist = [
312334
('image', 'image1'),
313335
('flavor', compute_fakes.flavor_id),
314336
('block_device_mapping', [compute_fakes.block_device_mapping]),
315337
('config_drive', False),
316-
('server_name', compute_fakes.server_name),
338+
('server_name', self.new_server.name),
317339
]
318340
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
319341

@@ -345,19 +367,27 @@ def test_server_create_with_block_device_mapping(self):
345367
)
346368
# ServerManager.create(name, image, flavor, **kwargs)
347369
self.servers_mock.create.assert_called_with(
348-
compute_fakes.server_name,
370+
self.new_server.name,
349371
self.image,
350372
self.flavor,
351373
**kwargs
352374
)
353375

354-
collist = ('addresses', 'flavor', 'id', 'name', 'properties')
376+
collist = (
377+
'addresses',
378+
'flavor',
379+
'id',
380+
'name',
381+
'networks',
382+
'properties',
383+
)
355384
self.assertEqual(collist, columns)
356385
datalist = (
357386
'',
358387
'Large ()',
359-
compute_fakes.server_id,
360-
compute_fakes.server_name,
388+
self.new_server.id,
389+
self.new_server.name,
390+
self.new_server.networks,
361391
'',
362392
)
363393
self.assertEqual(datalist, data)

0 commit comments

Comments
 (0)