@@ -320,3 +320,109 @@ def test_bmc_eeprom_json_output(self):
320320 assert result .exit_code == 0 , result .output
321321 output_json = json .loads (result .output )
322322 assert output_json == expected_json
323+
324+ def test_bmc_summary_bmc_not_available (self ):
325+ """Test 'show platform bmc summary' when BMC is not available"""
326+ mock_sonic_platform = mock .MagicMock ()
327+ sys .modules ['sonic_platform' ] = mock_sonic_platform
328+ sys .modules ['sonic_platform.platform' ] = mock_sonic_platform .platform
329+
330+ mock_platform = mock .MagicMock ()
331+ mock_chassis = mock .MagicMock ()
332+
333+ mock_platform .get_chassis .return_value = mock_chassis
334+ mock_chassis .get_bmc .return_value = None
335+ mock_sonic_platform .platform .Platform .return_value = mock_platform
336+
337+ result = CliRunner ().invoke (show .cli .commands ['platform' ].commands ['bmc' ].commands ['summary' ], [])
338+ assert result .exit_code == 0 , result .output
339+ assert "BMC is not available on this platform" in result .output
340+
341+ def test_bmc_summary_eeprom_info_empty (self ):
342+ """Test 'show platform bmc summary' when EEPROM info is empty"""
343+ mock_sonic_platform = mock .MagicMock ()
344+ sys .modules ['sonic_platform' ] = mock_sonic_platform
345+ sys .modules ['sonic_platform.platform' ] = mock_sonic_platform .platform
346+
347+ mock_platform = mock .MagicMock ()
348+ mock_chassis = mock .MagicMock ()
349+ mock_bmc = mock .MagicMock ()
350+
351+ mock_platform .get_chassis .return_value = mock_chassis
352+ mock_chassis .get_bmc .return_value = mock_bmc
353+ mock_bmc .get_eeprom .return_value = None
354+ mock_sonic_platform .platform .Platform .return_value = mock_platform
355+
356+ result = CliRunner ().invoke (show .cli .commands ['platform' ].commands ['bmc' ].commands ['summary' ], [])
357+ assert result .exit_code == 0 , result .output
358+ assert "Failed to retrieve BMC EEPROM information" in result .output
359+
360+ def test_bmc_summary_exception (self ):
361+ """Test 'show platform bmc summary' when an exception occurs"""
362+ mock_sonic_platform = mock .MagicMock ()
363+ sys .modules ['sonic_platform' ] = mock_sonic_platform
364+ sys .modules ['sonic_platform.platform' ] = mock_sonic_platform .platform
365+
366+ mock_platform = mock .MagicMock ()
367+ mock_chassis = mock .MagicMock ()
368+
369+ mock_platform .get_chassis .return_value = mock_chassis
370+ mock_chassis .get_bmc .side_effect = Exception ("Test exception" )
371+ mock_sonic_platform .platform .Platform .return_value = mock_platform
372+
373+ result = CliRunner ().invoke (show .cli .commands ['platform' ].commands ['bmc' ].commands ['summary' ], [])
374+ assert result .exit_code == 0 , result .output
375+ assert "Error retrieving BMC information: Test exception" in result .output
376+
377+ def test_bmc_eeprom_bmc_not_available (self ):
378+ """Test 'show platform bmc eeprom' when BMC is not available"""
379+ mock_sonic_platform = mock .MagicMock ()
380+ sys .modules ['sonic_platform' ] = mock_sonic_platform
381+ sys .modules ['sonic_platform.platform' ] = mock_sonic_platform .platform
382+
383+ mock_platform = mock .MagicMock ()
384+ mock_chassis = mock .MagicMock ()
385+
386+ mock_platform .get_chassis .return_value = mock_chassis
387+ mock_chassis .get_bmc .return_value = None
388+ mock_sonic_platform .platform .Platform .return_value = mock_platform
389+
390+ result = CliRunner ().invoke (show .cli .commands ['platform' ].commands ['bmc' ].commands ['eeprom' ], [])
391+ assert result .exit_code == 0 , result .output
392+ assert "BMC is not available on this platform" in result .output
393+
394+ def test_bmc_eeprom_info_empty (self ):
395+ """Test 'show platform bmc eeprom' when EEPROM info is empty"""
396+ mock_sonic_platform = mock .MagicMock ()
397+ sys .modules ['sonic_platform' ] = mock_sonic_platform
398+ sys .modules ['sonic_platform.platform' ] = mock_sonic_platform .platform
399+
400+ mock_platform = mock .MagicMock ()
401+ mock_chassis = mock .MagicMock ()
402+ mock_bmc = mock .MagicMock ()
403+
404+ mock_platform .get_chassis .return_value = mock_chassis
405+ mock_chassis .get_bmc .return_value = mock_bmc
406+ mock_bmc .get_eeprom .return_value = None
407+ mock_sonic_platform .platform .Platform .return_value = mock_platform
408+
409+ result = CliRunner ().invoke (show .cli .commands ['platform' ].commands ['bmc' ].commands ['eeprom' ], [])
410+ assert result .exit_code == 0 , result .output
411+ assert "Failed to retrieve BMC EEPROM information" in result .output
412+
413+ def test_bmc_eeprom_exception (self ):
414+ """Test 'show platform bmc eeprom' when an exception occurs"""
415+ mock_sonic_platform = mock .MagicMock ()
416+ sys .modules ['sonic_platform' ] = mock_sonic_platform
417+ sys .modules ['sonic_platform.platform' ] = mock_sonic_platform .platform
418+
419+ mock_platform = mock .MagicMock ()
420+ mock_chassis = mock .MagicMock ()
421+
422+ mock_platform .get_chassis .return_value = mock_chassis
423+ mock_chassis .get_bmc .side_effect = Exception ("Test exception" )
424+ mock_sonic_platform .platform .Platform .return_value = mock_platform
425+
426+ result = CliRunner ().invoke (show .cli .commands ['platform' ].commands ['bmc' ].commands ['eeprom' ], [])
427+ assert result .exit_code == 0 , result .output
428+ assert "Error retrieving BMC EEPROM information: Test exception" in result .output
0 commit comments