From 4f77aa663135b972c10f40967ef57b699d31c207 Mon Sep 17 00:00:00 2001 From: Prince George Date: Thu, 25 Nov 2021 16:22:02 +0000 Subject: [PATCH] Address review comment --- .../sonic_xcvr/api/public/cmis.py | 38 ++++++++----- tests/sonic_xcvr/test_cmis.py | 54 ++----------------- 2 files changed, 29 insertions(+), 63 deletions(-) diff --git a/sonic_platform_base/sonic_xcvr/api/public/cmis.py b/sonic_platform_base/sonic_xcvr/api/public/cmis.py index e99bea9a2..81c04edee 100644 --- a/sonic_platform_base/sonic_xcvr/api/public/cmis.py +++ b/sonic_platform_base/sonic_xcvr/api/public/cmis.py @@ -186,9 +186,9 @@ def get_transceiver_bulk_status(self): } for i in range(1, self.NUM_CHANNELS + 1): - bulk_status["tx%dbias" % i] = tx_bias['LaserBiasTx%dField' % i] - bulk_status["rx%dpower" % i] = rx_power['OpticalPowerRx%dField' %i] - bulk_status["tx%dpower" % i] = tx_power['OpticalPowerTx%dField' %i] + bulk_status["tx%dbias" % i] = tx_bias[i - 1] + bulk_status["rx%dpower" % i] = rx_power[i - 1] + bulk_status["tx%dpower" % i] = tx_power[i - 1] laser_temp_dict = self.get_laser_temperature() bulk_status['laser_temperature'] = laser_temp_dict['monitor value'] @@ -457,9 +457,13 @@ def get_tx_bias(self): tx_bias_support = self.get_tx_bias_support() if tx_bias_support is None: return None - if not tx_bias_support: - return {'LaserBiasTx%dField' % i : "N/A" for i in range(1, self.NUM_CHANNELS+1)} - tx_bias = self.xcvr_eeprom.read(consts.TX_BIAS_FIELD) + tx_bias = ["N/A" for _ in range(self.NUM_CHANNELS)] + + if tx_bias_support: + tx_bias = self.xcvr_eeprom.read(consts.TX_BIAS_FIELD) + if tx_bias is not None: + tx_bias = [tx_bias['LaserBiasTx%dField' % i] for i in range(1, self.NUM_CHANNELS+1)] + return tx_bias def get_tx_power(self): @@ -469,9 +473,14 @@ def get_tx_power(self): tx_power_support = self.get_tx_power_support() if tx_power_support is None: return None - if not tx_power_support: - return {'OpticalPowerTx%dField' %i : "N/A" for i in range(1, self.NUM_CHANNELS+1)} - tx_power = self.xcvr_eeprom.read(consts.TX_POWER_FIELD) + + tx_power = ["N/A" for _ in range(self.NUM_CHANNELS)] + + if tx_power_support: + tx_power = self.xcvr_eeprom.read(consts.TX_POWER_FIELD) + if tx_power is not None: + tx_power = [tx_power['OpticalPowerTx%dField' %i] for i in range(1, self.NUM_CHANNELS+1)] + return tx_power def get_tx_power_support(self): @@ -484,9 +493,14 @@ def get_rx_power(self): rx_power_support = self.get_rx_power_support() if rx_power_support is None: return None - if not rx_power_support: - return {'OpticalPowerRx%dField' %i : "N/A" for i in range(1, self.NUM_CHANNELS+1)} - rx_power = self.xcvr_eeprom.read(consts.RX_POWER_FIELD) + + rx_power = ["N/A" for _ in range(self.NUM_CHANNELS)] + + if rx_power_support: + rx_power = self.xcvr_eeprom.read(consts.RX_POWER_FIELD) + if rx_power is None: + rx_power = [rx_power['OpticalPowerRx%dField' %i] for i in range(1, self.NUM_CHANNELS+1)] + return rx_power def get_rx_power_support(self): diff --git a/tests/sonic_xcvr/test_cmis.py b/tests/sonic_xcvr/test_cmis.py index 8ba75ac60..a701bd824 100644 --- a/tests/sonic_xcvr/test_cmis.py +++ b/tests/sonic_xcvr/test_cmis.py @@ -348,19 +348,6 @@ def test_get_tx_bias_support(self, mock_response, expected): result = self.api.get_tx_bias_support() assert result == expected - @pytest.mark.parametrize("mock_response, expected", [ - ([True, {'TxBias1': 0}], {'TxBias1': 0}), - ([False, {'TxBias1': 0}], {'LaserBiasTx%dField' % (i) : "N/A" for i in range(1, 9)}), - ([None, None], None) - ]) - def test_get_tx_bias(self, mock_response, expected): - self.api.get_tx_bias_support = MagicMock() - self.api.get_tx_bias_support.return_value = mock_response[0] - self.api.xcvr_eeprom.read = MagicMock() - self.api.xcvr_eeprom.read.return_value = mock_response[1] - result = self.api.get_tx_bias() - assert result == expected - @pytest.mark.parametrize("mock_response, expected", [ (False, True) ]) @@ -370,19 +357,6 @@ def test_get_tx_power_support(self, mock_response, expected): result = self.api.get_tx_power_support() assert result == expected - @pytest.mark.parametrize("mock_response, expected", [ - ([True, {'TxPower1': 0}], {'TxPower1': 0}), - ([False, {'TxPower1': 0}], {'OpticalPowerTx%dField' % (i) : "N/A" for i in range(1, 9)}), - ([None, None], None) - ]) - def test_get_tx_power(self, mock_response, expected): - self.api.get_tx_power_support = MagicMock() - self.api.get_tx_power_support.return_value = mock_response[0] - self.api.xcvr_eeprom.read = MagicMock() - self.api.xcvr_eeprom.read.return_value = mock_response[1] - result = self.api.get_tx_power() - assert result == expected - @pytest.mark.parametrize("mock_response, expected", [ (False, True) ]) @@ -392,19 +366,6 @@ def test_get_rx_power_support(self, mock_response, expected): result = self.api.get_rx_power_support() assert result == expected - @pytest.mark.parametrize("mock_response, expected", [ - ([True, {'RxPower1': 0}], {'RxPower1': 0}), - ([False, {'RxPower1': 0}], {'OpticalPowerRx%dField' % (i) : "N/A" for i in range(1, 9)}), - ([None, None], None) - ]) - def test_get_rx_power(self, mock_response, expected): - self.api.get_rx_power_support = MagicMock() - self.api.get_rx_power_support.return_value = mock_response[0] - self.api.xcvr_eeprom.read = MagicMock() - self.api.xcvr_eeprom.read.return_value = mock_response[1] - result = self.api.get_rx_power() - assert result == expected - @pytest.mark.parametrize("mock_response, expected", [ ([False, True], True) ]) @@ -1137,18 +1098,9 @@ def test_get_transceiver_info(self, mock_response, expected): 0, 50, 3.3, - {'LaserBiasTx1Field': 70, 'LaserBiasTx2Field': 70, - 'LaserBiasTx3Field': 70, 'LaserBiasTx4Field': 70, - 'LaserBiasTx5Field': 70, 'LaserBiasTx6Field': 70, - 'LaserBiasTx7Field': 70, 'LaserBiasTx8Field': 70}, - {'OpticalPowerRx1Field': 0.1, 'OpticalPowerRx2Field': 0, - 'OpticalPowerRx3Field': 0, 'OpticalPowerRx4Field': 0, - 'OpticalPowerRx5Field': 0, 'OpticalPowerRx6Field': 0, - 'OpticalPowerRx7Field': 0, 'OpticalPowerRx8Field': 0,}, - {'OpticalPowerTx1Field': 0.1, 'OpticalPowerTx2Field': 0, - 'OpticalPowerTx3Field': 0, 'OpticalPowerTx4Field': 0, - 'OpticalPowerTx5Field': 0, 'OpticalPowerTx6Field': 0, - 'OpticalPowerTx7Field': 0, 'OpticalPowerTx8Field': 0,}, + [70, 70, 70, 70, 70, 70, 70, 70], + [0.1, 0, 0, 0, 0, 0, 0, 0], + [0.1, 0, 0, 0, 0, 0, 0, 0], True, True, {'monitor value': 40}, {