@@ -312,6 +312,8 @@ def test_is_sw_control(self, mock_get_db, mock_mode, mock_read):
312312 with pytest .raises (Exception ):
313313 sfp .is_sw_control ()
314314
315+ @mock .patch ('sonic_platform.device_data.DeviceDataManager.is_independent_mode' , mock .MagicMock (return_value = False ))
316+ @mock .patch ('sonic_platform.sfp.SFP.is_sw_control' , mock .MagicMock (return_value = False ))
315317 @mock .patch ('sonic_platform.utils.is_host' , mock .MagicMock (side_effect = [True , True , False , False ]))
316318 @mock .patch ('subprocess.check_output' , mock .MagicMock (side_effect = ['True' , 'False' ]))
317319 @mock .patch ('sonic_platform.sfp.SFP._get_lpmode' , mock .MagicMock (side_effect = [True , False ]))
@@ -323,6 +325,8 @@ def test_get_lpmode(self):
323325 assert sfp .get_lpmode ()
324326 assert not sfp .get_lpmode ()
325327
328+ @mock .patch ('sonic_platform.device_data.DeviceDataManager.is_independent_mode' , mock .MagicMock (return_value = False ))
329+ @mock .patch ('sonic_platform.sfp.SFP.is_sw_control' , mock .MagicMock (return_value = False ))
326330 @mock .patch ('sonic_platform.utils.is_host' , mock .MagicMock (side_effect = [True , True , False , False ]))
327331 @mock .patch ('subprocess.check_output' , mock .MagicMock (side_effect = ['True' , 'False' ]))
328332 @mock .patch ('sonic_platform.sfp.SFP._set_lpmode' , mock .MagicMock (side_effect = [True , False ]))
@@ -333,3 +337,45 @@ def test_set_lpmode(self):
333337 assert not sfp .set_lpmode (True )
334338 assert sfp .set_lpmode (False )
335339 assert not sfp .set_lpmode (False )
340+
341+ @mock .patch ('sonic_platform.device_data.DeviceDataManager.is_independent_mode' , mock .MagicMock (return_value = True ))
342+ @mock .patch ('sonic_platform.utils.read_int_from_file' )
343+ @mock .patch ('sonic_platform.sfp.SFP.is_sw_control' )
344+ def test_get_lpmode_cmis_host_mangagement (self , mock_control , mock_read ):
345+ mock_control .return_value = True
346+ sfp = SFP (0 )
347+ sfp .get_xcvr_api = mock .MagicMock (return_value = None )
348+ assert not sfp .get_lpmode ()
349+
350+ mock_api = mock .MagicMock ()
351+ sfp .get_xcvr_api .return_value = mock_api
352+ mock_api .get_lpmode = mock .MagicMock (return_value = False )
353+ assert not sfp .get_lpmode ()
354+
355+ mock_api .get_lpmode .return_value = True
356+ assert sfp .get_lpmode ()
357+
358+ mock_control .return_value = False
359+ mock_read .return_value = 1
360+ assert sfp .get_lpmode ()
361+
362+ mock_read .return_value = 2
363+ assert not sfp .get_lpmode ()
364+
365+ @mock .patch ('sonic_platform.device_data.DeviceDataManager.is_independent_mode' , mock .MagicMock (return_value = True ))
366+ @mock .patch ('sonic_platform.sfp.SFP.is_sw_control' )
367+ def test_set_lpmode_cmis_host_mangagement (self , mock_control ):
368+ mock_control .return_value = True
369+ sfp = SFP (0 )
370+ sfp .get_xcvr_api = mock .MagicMock (return_value = None )
371+ assert not sfp .set_lpmode (False )
372+
373+ mock_api = mock .MagicMock ()
374+ sfp .get_xcvr_api .return_value = mock_api
375+ mock_api .get_lpmode = mock .MagicMock (return_value = False )
376+ assert sfp .set_lpmode (False )
377+ assert not sfp .set_lpmode (True )
378+
379+ mock_control .return_value = False
380+ assert not sfp .set_lpmode (True )
381+ assert not sfp .set_lpmode (False )
0 commit comments