@@ -217,3 +217,30 @@ def test_support_platforms_not_db_based(self, mockDbBased, mockNotDbBased):
217217 def test_support_platforms_no_eeprom (self , mockDbBased , mockNotDbBased ):
218218 ret = decode_syseeprom .main ()
219219 assert ret == errno .ENODEV
220+
221+ @mock .patch ('decode_syseeprom.instantiate_eeprom_object' )
222+ def test_print_vendor_eeprom_success (self , mock_instantiate , capsys ):
223+ mock_eeprom = mock .MagicMock ()
224+ mock_eeprom .vendorstr .return_value = 'MOCK_VENDOR'
225+ mock_instantiate .return_value = mock_eeprom
226+ decode_syseeprom .print_vendor (use_db = False )
227+ captured = capsys .readouterr ()
228+ assert captured .out == 'MOCK_VENDOR\n '
229+
230+ @mock .patch ('decode_syseeprom.instantiate_eeprom_object' )
231+ def test_print_vendor_eeprom_none (self , mock_instantiate , capsys ):
232+ mock_instantiate .return_value = None
233+ decode_syseeprom .print_vendor (use_db = False )
234+ captured = capsys .readouterr ()
235+ assert 'Failed to read system EEPROM info' in captured .out
236+
237+ @mock .patch ('decode_syseeprom.instantiate_eeprom_object' )
238+ def test_print_vendor_typeerror_fallback (self , mock_instantiate , capsys ):
239+ mock_eeprom = mock .MagicMock ()
240+ # Simulate vendorstr() raising TypeError when called with no args
241+ mock_eeprom .vendorstr .side_effect = [TypeError (), 'FALLBACK_VENDOR' ]
242+ mock_eeprom .read_eeprom .return_value = 'dummy'
243+ mock_instantiate .return_value = mock_eeprom
244+ decode_syseeprom .print_vendor (use_db = False )
245+ captured = capsys .readouterr ()
246+ assert captured .out == 'FALLBACK_VENDOR\n '
0 commit comments