11# coding: utf-8
22# Unit tests for the Redfish API
3- from unittest import mock , TestCase
3+ import pytest
4+ from unittest import mock
45
56from redfish_client .root import Root
67from wrapanapi .exceptions import InvalidValueException
@@ -20,7 +21,7 @@ def test_connect_ssl(self, mock_connector):
2021 mock_connector .assert_called_with ("https://dummy:443/" , "user" , "pass" )
2122
2223
23- class RedfishTestCase (TestCase ):
24+ class RedfishTestCase ():
2425 def mock_redfish_system (self , mock_connector , data ):
2526 def mock_get (url ):
2627 res = mock .Mock ()
@@ -36,31 +37,36 @@ def mock_get(url):
3637 api_client = api_client )
3738 return rf
3839
40+ def setup_method (self , method ):
41+ self .patcher = mock .patch ("redfish_client.Connector" )
42+ ConnectorMockClass = self .patcher .start ()
43+ self .mock_connector = ConnectorMockClass ()
44+
45+ def teardown_method (self , method ):
46+ self .patcher .stop ()
47+
3948
40- @mock .patch ("redfish_client.Connector" )
4149class TestRedfishSystem (RedfishTestCase ):
42- def test_find_resource (self , mock_connector ):
43- rf = self .mock_redfish_system (mock_connector , data = {
50+ def test_find_resource (self ):
51+ rf = self .mock_redfish_system (self . mock_connector , data = {
4452 "/redfish/v1/BlankResource" : {
4553 "@odata.id" : "id"
4654 }
4755 })
4856 resource = rf .find ("/redfish/v1/BlankResource" )
49- self . assertEqual ( resource .raw , {"@odata.id" : "id" })
57+ assert resource .raw == {"@odata.id" : "id" }
5058
51- def test_redfish_system (self , mock_connector ):
52- rf = self .mock_redfish_system (mock_connector , data = {
59+ def test_redfish_system (self ):
60+ rf = self .mock_redfish_system (self . mock_connector , data = {
5361 "/redfish/v1/BlankResource" : {
5462 "@odata.id" : "id"
5563 }
5664 })
57- self .assertEqual (rf ._identifying_attrs ,
58- {"url" : "http://dummy:8000/" })
59- self .assertEqual (rf .info (),
60- "RedfishSystem url=http://dummy:8000/" )
65+ assert rf ._identifying_attrs == {"url" : "http://dummy:8000/" }
66+ assert rf .info () == "RedfishSystem url=http://dummy:8000/"
6167
62- def test_num_servers (self , mock_connector ):
63- rf = self .mock_redfish_system (mock_connector , data = {
68+ def test_num_servers (self ):
69+ rf = self .mock_redfish_system (self . mock_connector , data = {
6470 "/redfish/v1" : {
6571 "Systems" : {
6672 "@odata.id" : "/redfish/v1/Systems"
@@ -83,10 +89,10 @@ def test_num_servers(self, mock_connector):
8389 "Name" : "ComputerSystemCollection" ,
8490 "Description" : "A Collection of ComputerSystem resource instances." }
8591 })
86- self . assertEqual ( rf .num_servers , 4 )
92+ assert rf .num_servers == 4
8793
88- def test_num_chassis (self , mock_connector ):
89- rf = self .mock_redfish_system (mock_connector , data = {
94+ def test_num_chassis (self ):
95+ rf = self .mock_redfish_system (self . mock_connector , data = {
9096 "/redfish/v1" : {
9197 "Chassis" : {
9298 "@odata.id" : "/redfish/v1/Chassis"
@@ -135,10 +141,10 @@ def test_num_chassis(self, mock_connector):
135141 "ChassisType" : "Sled" ,
136142 },
137143 })
138- self . assertEqual ( rf .num_chassis , 4 )
144+ assert rf .num_chassis == 4
139145
140- def test_num_racks (self , mock_connector ):
141- rf = self .mock_redfish_system (mock_connector , data = {
146+ def test_num_racks (self ):
147+ rf = self .mock_redfish_system (self . mock_connector , data = {
142148 "/redfish/v1" : {
143149 "Chassis" : {
144150 "@odata.id" : "/redfish/v1/Chassis"
@@ -187,49 +193,49 @@ def test_num_racks(self, mock_connector):
187193 "ChassisType" : "Sled" ,
188194 },
189195 })
190- self . assertEqual ( rf .num_racks , 2 )
196+ assert rf .num_racks == 2
191197
192- def test_get_server (self , mock_connector ):
193- rf = self .mock_redfish_system (mock_connector , data = {
198+ def test_get_server (self ):
199+ rf = self .mock_redfish_system (self . mock_connector , data = {
194200 "/redfish/v1/Systems/System-1-2-1-1" : {
195201 "@odata.id" : "/redfish/v1/Systems/System-1-2-1-1" ,
196202 }
197203 })
198204 rf_server = rf .get_server ("/redfish/v1/Systems/System-1-2-1-1" )
199- self . assertEqual ( type (rf_server ), RedfishServer )
205+ assert type (rf_server ) == RedfishServer
200206
201- def test_get_chassis (self , mock_connector ):
202- rf = self .mock_redfish_system (mock_connector , data = {
207+ def test_get_chassis (self ):
208+ rf = self .mock_redfish_system (self . mock_connector , data = {
203209 "/redfish/v1/Chassis/Sled-1-2-1" : {
204210 "@odata.id" : "/redfish/v1/Chassis/Sled-1-2-1" ,
205211 }
206212 })
207213 rf_chassis = rf .get_chassis ("/redfish/v1/Chassis/Sled-1-2-1" )
208- self . assertEqual ( type (rf_chassis ), RedfishChassis )
214+ assert type (rf_chassis ) == RedfishChassis
209215
210- def test_get_rack (self , mock_connector ):
211- rf = self .mock_redfish_system (mock_connector , data = {
216+ def test_get_rack (self ):
217+ rf = self .mock_redfish_system (self . mock_connector , data = {
212218 "/redfish/v1/Chassis/Rack-1" : {
213219 "@odata.id" : "/redfish/v1/Chassis/Rack-1" ,
214220 "ChassisType" : "Rack" ,
215221 }
216222 })
217223 rf_rack = rf .get_rack ("/redfish/v1/Chassis/Rack-1" )
218- self . assertEqual ( type (rf_rack ), RedfishRack )
224+ assert type (rf_rack ) == RedfishRack
219225
220- def test_get_rack_bad (self , mock_connector ):
221- rf = self .mock_redfish_system (mock_connector , data = {
226+ def test_get_rack_bad (self ):
227+ rf = self .mock_redfish_system (self . mock_connector , data = {
222228 "/redfish/v1/Chassis/Sled-1-2-1" : {
223229 "@odata.id" : "/redfish/v1/Chassis/Sled-1-2-1" ,
224230 "ChassisType" : "Sled" ,
225231 }
226232 })
227- with self .assertRaises (InvalidValueException ,
228- msg = "Chassis type Sled does not match that of a Rack" ):
233+ with pytest .raises (InvalidValueException ) as e :
229234 rf .get_rack ("/redfish/v1/Chassis/Sled-1-2-1" )
235+ assert e == "Chassis type Sled does not match that of a Rack"
230236
231- def test_server_stats_inventory (self , mock_connector ):
232- rf = self .mock_redfish_system (mock_connector , data = {
237+ def test_server_stats_inventory (self ):
238+ rf = self .mock_redfish_system (self . mock_connector , data = {
233239 "/redfish/v1/Systems/System-1-2-1-1" : {
234240 "@odata.id" : "/redfish/v1/Systems/System-1-2-1-1" ,
235241 "Description" : "A server" ,
@@ -265,13 +271,13 @@ def test_server_stats_inventory(self, mock_connector):
265271 # "num_network_devices", "num_storage_devices"
266272 ]
267273 requested_inventory = ["power_state" ]
268- self . assertEqual (rf .server_stats (physical_server , requested_stats ),
269- { "cores_capacity" : 20 , "memory_capacity" : 32768 })
270- self . assertEqual (rf .server_inventory (physical_server , requested_inventory ),
271- { "power_state" : "on" })
274+ assert (rf .server_stats (physical_server , requested_stats ) == {
275+ "cores_capacity" : 20 , "memory_capacity" : 32768 })
276+ assert (rf .server_inventory (physical_server , requested_inventory ) == {
277+ "power_state" : "on" })
272278
273- def test_rack_stats_inventory (self , mock_connector ):
274- rf = self .mock_redfish_system (mock_connector , data = {
279+ def test_rack_stats_inventory (self ):
280+ rf = self .mock_redfish_system (self . mock_connector , data = {
275281 "/redfish/v1/Chassis/Rack-1" : {
276282 "@odata.id" : "/redfish/v1/Chassis/Rack-1" ,
277283 "ChassisType" : "Rack" ,
@@ -294,13 +300,12 @@ def test_rack_stats_inventory(self, mock_connector):
294300 physical_rack .ems_ref = "/redfish/v1/Chassis/Rack-1"
295301 requested_stats = []
296302 requested_inventory = ["rack_name" ]
297- self .assertEqual (rf .rack_stats (physical_rack , requested_stats ),
298- {})
299- self .assertEqual (rf .rack_inventory (physical_rack , requested_inventory ),
300- {"rack_name" : "Rack-1" })
303+ assert rf .rack_stats (physical_rack , requested_stats ) == {}
304+ assert (rf .rack_inventory (physical_rack , requested_inventory ) == {
305+ "rack_name" : "Rack-1" })
301306
302- def test_chassis_stats_inventory (self , mock_connector ):
303- rf = self .mock_redfish_system (mock_connector , data = {
307+ def test_chassis_stats_inventory (self ):
308+ rf = self .mock_redfish_system (self . mock_connector , data = {
304309 "/redfish/v1/Chassis/Sled-1-2-1" : {
305310 "@odata.id" : "/redfish/v1/Chassis/Sled-1-2-1" ,
306311 "ChassisType" : "Sled" ,
@@ -326,18 +331,17 @@ def test_chassis_stats_inventory(self, mock_connector):
326331 phsyical_chassis .ems_ref = "/redfish/v1/Chassis/Sled-1-2-1"
327332 requested_stats = ["num_physical_servers" ]
328333 requested_inventory = ["chassis_name" , "description" , "identify_led_state" ]
329- self . assertEqual (rf .chassis_stats (phsyical_chassis , requested_stats ),
330- { "num_physical_servers" : 2 })
331- self . assertEqual (rf .chassis_inventory (phsyical_chassis , requested_inventory ),
332- { "chassis_name" : "Dell G5_Sled (5555A)" ,
333- "description" : "G5 Sled-Level Enclosure" ,
334- "identify_led_state" : "Blinking" })
334+ assert (rf .chassis_stats (phsyical_chassis , requested_stats ) == {
335+ "num_physical_servers" : 2 })
336+ assert (rf .chassis_inventory (phsyical_chassis , requested_inventory ) == {
337+ "chassis_name" : "Dell G5_Sled (5555A)" ,
338+ "description" : "G5 Sled-Level Enclosure" ,
339+ "identify_led_state" : "Blinking" })
335340
336341
337- @mock .patch ("redfish_client.Connector" )
338342class TestRedfishServer (RedfishTestCase ):
339- def test_server_simple_properties (self , mock_connector ):
340- rf = self .mock_redfish_system (mock_connector , data = {
343+ def test_server_simple_properties (self ):
344+ rf = self .mock_redfish_system (self . mock_connector , data = {
341345 "/redfish/v1/Systems/System-1-2-1-1" : {
342346 "@odata.id" : "/redfish/v1/Systems/System-1-2-1-1" ,
343347 "Description" : "A server" ,
@@ -349,15 +353,14 @@ def test_server_simple_properties(self, mock_connector):
349353 }
350354 })
351355 rf_server = rf .get_server ("/redfish/v1/Systems/System-1-2-1-1" )
352- self .assertEqual (rf_server .name , "Dell Inc. System (945hjf0927mf)" )
353- self .assertEqual (rf_server .description , "A server" )
354- self .assertEqual (rf_server .state , "On" )
355- self .assertEqual (rf_server ._identifying_attrs ,
356- {"odata_id" : "/redfish/v1/Systems/System-1-2-1-1" })
357- self .assertEqual (rf_server .uuid (), "System-1-2-1-1" )
358-
359- def test_server_complex_properties (self , mock_connector ):
360- rf = self .mock_redfish_system (mock_connector , data = {
356+ assert rf_server .name == "Dell Inc. System (945hjf0927mf)"
357+ assert rf_server .description == "A server"
358+ assert rf_server .state == "On"
359+ assert rf_server ._identifying_attrs == {"odata_id" : "/redfish/v1/Systems/System-1-2-1-1" }
360+ assert rf_server .uuid () == "System-1-2-1-1"
361+
362+ def test_server_complex_properties (self ):
363+ rf = self .mock_redfish_system (self .mock_connector , data = {
361364 "/redfish/v1/Systems/System-1-2-1-1" : {
362365 "@odata.id" : "/redfish/v1/Systems/System-1-2-1-1" ,
363366 "Description" : "A server" ,
@@ -388,18 +391,18 @@ def test_server_complex_properties(self, mock_connector):
388391 }
389392 })
390393 rf_server = rf .get_server ("/redfish/v1/Systems/System-1-2-1-1" )
391- self . assertEqual ( rf_server .server_cores , 20 )
392- self . assertEqual ( rf_server .server_memory , 32768 )
393- self . assertEqual ( rf_server .state , "On" )
394- self . assertEqual ( rf_server ._get_state (), ServerState .ON )
395- self . assertTrue ( rf_server .is_on )
396- self . assertFalse ( rf_server .is_off )
397- self . assertFalse ( rf_server .is_powering_on )
398- self . assertFalse ( rf_server .is_powering_off )
399- self . assertEqual ( rf_server .machine_type , "x86-64" )
400- self . assertEqual ( rf_server .product_name , "System" )
401-
402- def test_server_power_states (self , mock_connector ):
394+ assert rf_server .server_cores == 20
395+ assert rf_server .server_memory == 32768
396+ assert rf_server .state == "On"
397+ assert rf_server ._get_state () == ServerState .ON
398+ assert rf_server .is_on
399+ assert not rf_server .is_off
400+ assert not rf_server .is_powering_on
401+ assert not rf_server .is_powering_off
402+ assert rf_server .machine_type == "x86-64"
403+ assert rf_server .product_name == "System"
404+
405+ def test_server_power_states (self ):
403406 # string,
404407 # is_on, is_off, is_powering_on, is_powering_off
405408 test_data = {
@@ -414,21 +417,21 @@ def test_server_power_states(self, mock_connector):
414417 }
415418
416419 for str_state , states in test_data .items ():
417- rf = self .mock_redfish_system (mock_connector , data = {
420+ rf = self .mock_redfish_system (self . mock_connector , data = {
418421 "/redfish/v1/Systems/System-1-2-1-1" : {
419422 "@odata.id" : "/redfish/v1/Systems/System-1-2-1-1" ,
420423 "PowerState" : str_state ,
421424 }
422425 })
423426 rf_server = rf .get_server ("/redfish/v1/Systems/System-1-2-1-1" )
424- self . assertEqual ( rf_server .is_on , states [0 ])
425- self . assertEqual ( rf_server .is_off , states [1 ])
426- self . assertEqual ( rf_server .is_powering_on , states [2 ])
427- self . assertEqual ( rf_server .is_powering_off , states [3 ])
428- self . assertEqual ( rf_server ._get_state (), states [4 ])
429-
430- def test_server_name_no_sn (self , mock_connector ):
431- rf = self .mock_redfish_system (mock_connector , data = {
427+ assert rf_server .is_on == states [0 ]
428+ assert rf_server .is_off == states [1 ]
429+ assert rf_server .is_powering_on == states [2 ]
430+ assert rf_server .is_powering_off == states [3 ]
431+ assert rf_server ._get_state () == states [4 ]
432+
433+ def test_server_name_no_sn (self ):
434+ rf = self .mock_redfish_system (self . mock_connector , data = {
432435 "/redfish/v1/Systems/System-1-2-1-1" : {
433436 "@odata.id" : "/redfish/v1/Systems/System-1-2-1-1" ,
434437 "Id" : "System-1-2-1-1" ,
@@ -437,13 +440,12 @@ def test_server_name_no_sn(self, mock_connector):
437440 }
438441 })
439442 rf_server = rf .get_server ("/redfish/v1/Systems/System-1-2-1-1" )
440- self . assertEqual ( rf_server .name , "Dell Inc. System" )
443+ assert rf_server .name == "Dell Inc. System"
441444
442445
443- @mock .patch ("redfish_client.Connector" )
444446class TestRedfishChassis (RedfishTestCase ):
445- def test_get_chassis_properties (self , mock_connector ):
446- rf = self .mock_redfish_system (mock_connector , data = {
447+ def test_get_chassis_properties (self ):
448+ rf = self .mock_redfish_system (self . mock_connector , data = {
447449 "/redfish/v1/Chassis/Sled-1-2-1" : {
448450 "@odata.id" : "/redfish/v1/Chassis/Sled-1-2-1" ,
449451 "ChassisType" : "Sled" ,
@@ -466,17 +468,16 @@ def test_get_chassis_properties(self, mock_connector):
466468 }
467469 })
468470 rf_chassis = rf .get_chassis ("/redfish/v1/Chassis/Sled-1-2-1" )
469- self .assertEqual (rf_chassis .chassis_type , "Sled" )
470- self .assertEqual (rf_chassis .name , "Dell G5_Sled (5555A)" )
471- self .assertEqual (rf_chassis .description , "G5 Sled-Level Enclosure" )
472- self .assertEqual (rf_chassis .led_state , "Blinking" )
473- self .assertEqual (rf_chassis ._identifying_attrs ,
474- {"odata_id" : "/redfish/v1/Chassis/Sled-1-2-1" })
475- self .assertEqual (rf_chassis .uuid (), "Sled-1-2-1" )
476- self .assertEqual (rf_chassis .num_servers , 2 )
477-
478- def test_get_rack_properties (self , mock_connector ):
479- rf = self .mock_redfish_system (mock_connector , data = {
471+ assert rf_chassis .chassis_type == "Sled"
472+ assert rf_chassis .name == "Dell G5_Sled (5555A)"
473+ assert rf_chassis .description == "G5 Sled-Level Enclosure"
474+ assert rf_chassis .led_state == "Blinking"
475+ assert rf_chassis ._identifying_attrs == {"odata_id" : "/redfish/v1/Chassis/Sled-1-2-1" }
476+ assert rf_chassis .uuid () == "Sled-1-2-1"
477+ assert rf_chassis .num_servers == 2
478+
479+ def test_get_rack_properties (self ):
480+ rf = self .mock_redfish_system (self .mock_connector , data = {
480481 "/redfish/v1/Chassis/Rack-1" : {
481482 "@odata.id" : "/redfish/v1/Chassis/Rack-1" ,
482483 "ChassisType" : "Rack" ,
@@ -496,11 +497,11 @@ def test_get_rack_properties(self, mock_connector):
496497 }
497498 })
498499 rf_rack = rf .get_rack ("/redfish/v1/Chassis/Rack-1" )
499- self . assertEqual ( rf_rack .chassis_type , "Rack" )
500- self . assertEqual ( rf_rack .name , "Rack-1" )
501- self . assertEqual ( rf_rack .description , "Redfish Rack" )
502- self . assertEqual ( rf_rack .uuid (), "Rack-1" )
503- self . assertEqual (rf_rack ._identifying_attrs , {"odata_id" :
500+ assert rf_rack .chassis_type == "Rack"
501+ assert rf_rack .name == "Rack-1"
502+ assert rf_rack .description == "Redfish Rack"
503+ assert rf_rack .uuid () == "Rack-1"
504+ assert (rf_rack ._identifying_attrs == {"odata_id" :
504505 "/redfish/v1/Chassis/Rack-1" })
505- self . assertEqual ( rf_rack .led_state , "Blinking" )
506- self . assertEqual ( rf_rack .num_servers , 1 )
506+ assert rf_rack .led_state == "Blinking"
507+ assert rf_rack .num_servers == 1
0 commit comments