Skip to content

Commit 778ea5e

Browse files
committed
Add a new test function 'test_CmisManagerTask_need_lp_mode_for_dpdeinit_set_power_expired()' in test_xcvrd.py to enhance the test code coverage.
1 parent 29776ce commit 778ea5e

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

sonic-xcvrd/tests/test_xcvrd.py

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1746,7 +1746,7 @@ def test_CmisManagerTask_get_configured_tx_power_from_db(self, mock_table_helper
17461746
(2, 0x11, 'Credo', False),
17471747
(1, 0x1, 'Molex', False)
17481748
])
1749-
def test_CmisManagerTask_is_need_low_power_first(self, appl, host_assign, vendor, expected):
1749+
def test_CmisManagerTask_need_lp_mode_for_dpdeinit(self, appl, host_assign, vendor, expected):
17501750
port_mapping = PortMapping()
17511751
stop_event = threading.Event()
17521752
task = CmisManagerTask(DEFAULT_NAMESPACE, port_mapping, stop_event)
@@ -1756,6 +1756,55 @@ def test_CmisManagerTask_is_need_low_power_first(self, appl, host_assign, vendor
17561756
mock_xcvr_api.get_host_lane_assignment_option = MagicMock(return_value=host_assign)
17571757
assert task.need_lp_mode_for_dpdeinit(mock_xcvr_api, appl) == expected
17581758

1759+
@patch('xcvrd.xcvrd.XcvrTableHelper.get_status_tbl')
1760+
@patch('xcvrd.xcvrd.platform_chassis')
1761+
@patch('xcvrd.xcvrd.is_fast_reboot_enabled', MagicMock(return_value=(False)))
1762+
@patch('xcvrd.xcvrd.PortChangeObserver', MagicMock(handle_port_update_event=MagicMock()))
1763+
@patch('xcvrd.xcvrd._wrapper_get_sfp_type', MagicMock(return_value='QSFP_DD'))
1764+
@patch('xcvrd.xcvrd.CmisManagerTask.wait_for_port_config_done', MagicMock())
1765+
@patch('xcvrd.xcvrd.is_cmis_api', MagicMock(return_value=True))
1766+
def test_CmisManagerTask_need_lp_mode_for_dpdeinit_set_power_expired(self, mock_chassis, mock_get_status_tbl):
1767+
# set low power mode expired
1768+
mock_get_status_tbl = Table("STATE_DB", TRANSCEIVER_STATUS_TABLE)
1769+
mock_xcvr_api = MagicMock()
1770+
mock_xcvr_api.is_flat_memory = MagicMock(return_value=False)
1771+
mock_xcvr_api.is_coherent_module = MagicMock(return_value=False)
1772+
mock_xcvr_api.get_tx_config_power = MagicMock(return_value=0)
1773+
mock_xcvr_api.get_laser_config_freq = MagicMock(return_value=0)
1774+
mock_xcvr_api.get_module_type_abbreviation = MagicMock(return_value='QSFP-DD')
1775+
1776+
mock_sfp = MagicMock()
1777+
mock_sfp.get_presence = MagicMock(return_value=True)
1778+
mock_sfp.get_xcvr_api = MagicMock(return_value=mock_xcvr_api)
1779+
mock_chassis.get_all_sfps = MagicMock(return_value=[mock_sfp])
1780+
mock_chassis.get_sfp = MagicMock(return_value=mock_sfp)
1781+
1782+
port_mapping = PortMapping()
1783+
stop_event = threading.Event()
1784+
task = CmisManagerTask(DEFAULT_NAMESPACE, port_mapping, stop_event)
1785+
task.xcvr_table_helper = XcvrTableHelper(DEFAULT_NAMESPACE)
1786+
task.xcvr_table_helper.get_status_tbl.return_value = mock_get_status_tbl
1787+
1788+
port_change_event = PortChangeEvent('PortConfigDone', -1, 0, PortChangeEvent.PORT_SET)
1789+
task.on_port_update_event(port_change_event)
1790+
assert task.isPortConfigDone
1791+
port_change_event = PortChangeEvent('Ethernet0', 1, 0, PortChangeEvent.PORT_SET,
1792+
{'speed':'400000', 'lanes':'1,2,3,4,5,6,7,8'})
1793+
task.on_port_update_event(port_change_event)
1794+
assert len(task.port_dict) == 1
1795+
task.port_mapping.logical_port_list = MagicMock()
1796+
task.get_host_tx_status = MagicMock(return_value='true')
1797+
task.get_port_admin_status = MagicMock(return_value='up')
1798+
task.task_stopping_event.is_set = MagicMock(side_effect=[False, False, True])
1799+
task.update_port_transceiver_status_table_sw_cmis_state("Ethernet0", CMIS_STATE_DP_DEINIT)
1800+
mock_xcvr_api.get_module_state = MagicMock(return_value='ModulePwrDn')
1801+
task.need_lp_mode_for_dpdeinit = MagicMock(return_value=True)
1802+
task.port_dict['Ethernet0']['host_lanes_mask'] = 0xff
1803+
task.port_dict['Ethernet0']['appl'] = 1
1804+
task.port_dict['Ethernet0']['cmis_expired'] = datetime.datetime.now() - datetime.timedelta(100)
1805+
task.task_worker()
1806+
assert get_cmis_state_from_state_db('Ethernet0', task.xcvr_table_helper.get_status_tbl(task.port_mapping.get_asic_id_for_logical_port('Ethernet0'))) == CMIS_STATE_INSERTED
1807+
17591808
@patch('xcvrd.xcvrd.platform_chassis')
17601809
@patch('xcvrd.xcvrd.is_fast_reboot_enabled', MagicMock(return_value=(False)))
17611810
@patch('xcvrd.xcvrd.PortChangeObserver', MagicMock(handle_port_update_event=MagicMock()))

0 commit comments

Comments
 (0)