@@ -140,7 +140,7 @@ class TestDecodeSyseeprom(object):
140140 def test_print_eeprom_dict (self , capsys ):
141141
142142 expected_output = '''\
143- TlvInfo Header:
143+ TlvInfo Header:
144144 Id String: TlvInfo
145145 Version: 1
146146 Total Length: 170
@@ -217,3 +217,33 @@ 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+
222+ @mock .patch ('decode_syseeprom.instantiate_eeprom_object' )
223+ def test_print_vendor_eeprom_success (self , mock_instantiate , capsys ):
224+ mock_eeprom = mock .MagicMock ()
225+ mock_eeprom .vendorstr .return_value = 'MOCK_VENDOR'
226+ mock_instantiate .return_value = mock_eeprom
227+ decode_syseeprom .print_vendor (use_db = False )
228+ captured = capsys .readouterr ()
229+ assert captured .out == 'MOCK_VENDOR\n '
230+
231+
232+ @mock .patch ('decode_syseeprom.instantiate_eeprom_object' )
233+ def test_print_vendor_eeprom_none (self , mock_instantiate , capsys ):
234+ mock_instantiate .return_value = None
235+ decode_syseeprom .print_vendor (use_db = False )
236+ captured = capsys .readouterr ()
237+ assert 'Failed to read system EEPROM info' in captured .out
238+
239+
240+ @mock .patch ('decode_syseeprom.instantiate_eeprom_object' )
241+ def test_print_vendor_typeerror_fallback (self , mock_instantiate , capsys ):
242+ mock_eeprom = mock .MagicMock ()
243+ # Simulate vendorstr() raising TypeError when called with no args
244+ mock_eeprom .vendorstr .side_effect = [TypeError (), 'FALLBACK_VENDOR' ]
245+ mock_eeprom .read_eeprom .return_value = 'dummy'
246+ mock_instantiate .return_value = mock_eeprom
247+ decode_syseeprom .print_vendor (use_db = False )
248+ captured = capsys .readouterr ()
249+ assert captured .out == 'FALLBACK_VENDOR\n '
0 commit comments