@@ -468,26 +468,65 @@ def test_is_npu_si_settings_update_required(self):
468468 @patch ('xcvrd.xcvrd_utilities.port_event_helper.PortMapping.logical_port_name_to_physical_port_list' , MagicMock (return_value = [0 ]))
469469 @patch ('xcvrd.xcvrd._wrapper_get_transceiver_firmware_info' , MagicMock (return_value = {'active_firmware' : '2.1.1' ,
470470 'inactive_firmware' : '1.2.4' }))
471- @patch ('xcvrd.xcvrd._wrapper_is_flat_memory' )
471+ @patch ('xcvrd.xcvrd._wrapper_is_flat_memory' , MagicMock ( return_value = False ) )
472472 @patch ('xcvrd.xcvrd._wrapper_get_presence' )
473- def test_post_port_sfp_firmware_info_to_db (self , mock_get_presence , mock_is_flat_memory ):
473+ def test_post_port_sfp_firmware_info_to_db (self , mock_get_presence ):
474474 logical_port_name = "Ethernet0"
475475 port_mapping = PortMapping ()
476+ port_mapping .get_physical_to_logical = MagicMock (return_value = ["Ethernet0" , "Ethernet4" ])
476477 mock_sfp_obj_dict = MagicMock ()
477478 stop_event = threading .Event ()
478479 mock_cmis_manager = MagicMock ()
479480 dom_info_update = DomInfoUpdateTask (DEFAULT_NAMESPACE , port_mapping , mock_sfp_obj_dict , stop_event , mock_cmis_manager )
480481 firmware_info_tbl = Table ("STATE_DB" , TRANSCEIVER_FIRMWARE_INFO_TABLE )
482+
483+ # Test 1: stop_event is set - should not update table
481484 stop_event .set ()
482485 dom_info_update .post_port_sfp_firmware_info_to_db (logical_port_name , port_mapping , firmware_info_tbl , stop_event )
483486 assert firmware_info_tbl .get_size () == 0
487+
488+ # Test 2: transceiver not present - should not update table
484489 stop_event .clear ()
485490 mock_get_presence .return_value = False
486491 dom_info_update .post_port_sfp_firmware_info_to_db (logical_port_name , port_mapping , firmware_info_tbl , stop_event )
487492 assert firmware_info_tbl .get_size () == 0
493+
494+ # Test 3: transceiver present - should update table for both logical ports
488495 mock_get_presence .return_value = True
489496 dom_info_update .post_port_sfp_firmware_info_to_db (logical_port_name , port_mapping , firmware_info_tbl , stop_event )
497+ # Verify firmware info is posted for Ethernet0 (2 entries: active + inactive firmware)
490498 assert firmware_info_tbl .get_size_for_key (logical_port_name ) == 2
499+ # Verify firmware info is also posted for Ethernet4 (2 entries: active + inactive firmware)
500+ assert firmware_info_tbl .get_size_for_key ("Ethernet4" ) == 2
501+ # Verify total table has 2 logical ports (keys)
502+ assert firmware_info_tbl .get_size () == 2
503+
504+ @patch ('xcvrd.xcvrd_utilities.port_event_helper.PortMapping.logical_port_name_to_physical_port_list' , MagicMock (return_value = [0 ]))
505+ @patch ('xcvrd.xcvrd._wrapper_get_transceiver_firmware_info' , MagicMock (return_value = {'active_firmware' : '2.1.1' ,
506+ 'inactive_firmware' : '1.2.4' }))
507+ @patch ('xcvrd.xcvrd._wrapper_is_flat_memory' , MagicMock (return_value = False ))
508+ @patch ('xcvrd.xcvrd._wrapper_get_presence' )
509+ def test_post_port_sfp_firmware_info_to_db_lport_list_None (self , mock_get_presence ):
510+ logical_port_name = "Ethernet0"
511+ port_mapping = PortMapping ()
512+ port_mapping .get_physical_to_logical = MagicMock (return_value = None )
513+ port_mapping .logical_port_name_to_physical_port_list = MagicMock (return_value = [0 ])
514+ mock_sfp_obj_dict = MagicMock ()
515+ stop_event = threading .Event ()
516+ mock_cmis_manager = MagicMock ()
517+ dom_info_update = DomInfoUpdateTask (DEFAULT_NAMESPACE , port_mapping , mock_sfp_obj_dict , stop_event , mock_cmis_manager )
518+ firmware_info_tbl = MagicMock ()
519+ firmware_info_tbl .get_size .return_value = 0
520+ stop_event .set ()
521+ dom_info_update .post_port_sfp_firmware_info_to_db (logical_port_name , port_mapping , firmware_info_tbl , stop_event )
522+ assert firmware_info_tbl .get_size () == 0
523+ stop_event .clear ()
524+ mock_get_presence .return_value = False
525+ dom_info_update .post_port_sfp_firmware_info_to_db (logical_port_name , port_mapping , firmware_info_tbl , stop_event )
526+ assert firmware_info_tbl .get_size () == 0
527+ mock_get_presence .return_value = True
528+ dom_info_update .post_port_sfp_firmware_info_to_db (logical_port_name , port_mapping , firmware_info_tbl , stop_event )
529+ assert firmware_info_tbl .set .call_count == 0
491530
492531 def test_post_port_dom_sensor_info_to_db (self ):
493532 def mock_get_transceiver_dom_sensor_real_value (physical_port ):
0 commit comments