def test_getpdu_xcvr_temperature_sensor(self): """ Test case for correct transceiver temperature sensor MIB values """ expected_values = [ rfc3433.EntitySensorDataType.CELSIUS, rfc3433.EntitySensorDataScale.UNITS, 6, # precision 25390000, # expected sensor value rfc3433.EntitySensorStatus.OK ] self._test_getpdu_xcvr_sensor( get_transceiver_sensor_sub_id(self.IFINDEX, SENSOR_TYPE_TEMP)[0], expected_values)
def test_getpdu_xcvr_voltage_sensor(self): """ Test case for correct transceiver voltage sensor MIB values """ expected_values = [ rfc3433.EntitySensorDataType.VOLTS_DC, rfc3433.EntitySensorDataScale.UNITS, 4, # precision 33700, # expected sensor value rfc3433.EntitySensorStatus.OK ] self._test_getpdu_xcvr_sensor( get_transceiver_sensor_sub_id(self.IFINDEX, 'voltage')[0], expected_values)
def test_getpdu_xcvr_temperature_sensor_asic1(self): """ Test case for correct transceiver temperature sensor MIB values """ print(rfc3433.PhysicalSensorTableMIB.updater.sub_ids) expected_values = [ rfc3433.EntitySensorDataType.CELSIUS, rfc3433.EntitySensorDataScale.UNITS, 6, # precision 30390000, # expected sensor value rfc3433.EntitySensorStatus.OK ] self._test_getpdu_xcvr_sensor( get_transceiver_sensor_sub_id(self.IFINDEX_ASIC1, 'temperature')[0], expected_values)
def test_getpdu_xcvr_tx_bias_sensor_overflow(self): """ Test case for correct transceiver tx bias sensor MIB values when tx bias is grater than 1E9 """ expected_values = [ rfc3433.EntitySensorDataType.AMPERES, rfc3433.EntitySensorDataScale.MILLI, 3, # precision 1E9, # expected sensor value rfc3433.EntitySensorStatus.OK ] self._test_getpdu_xcvr_sensor( get_transceiver_sensor_sub_id(self.IFINDEX, 'tx3bias')[0], expected_values)
def test_getpdu_xcvr_tx_bias_sensor_unknown(self): """ Test case for correct transceiver tx bias sensor MIB values, when tx bias sensor is set to "UNKNOWN" in state DB """ expected_values = [ rfc3433.EntitySensorDataType.AMPERES, rfc3433.EntitySensorDataScale.MILLI, 3, # precision 0, # expected sensor value rfc3433.EntitySensorStatus.UNAVAILABLE ] self._test_getpdu_xcvr_sensor( get_transceiver_sensor_sub_id(self.IFINDEX, 'tx1bias')[0], expected_values)
def test_getpdu_xcvr_rx_power_sensor_minus_infinity(self): """ Test case for correct transceiver rx power sensor MIB values in case when rx power == -inf """ expected_values = [ rfc3433.EntitySensorDataType.WATTS, rfc3433.EntitySensorDataScale.MILLI, 4, # precision 0, # expected sensor value rfc3433.EntitySensorStatus.OK ] self._test_getpdu_xcvr_sensor( get_transceiver_sensor_sub_id(self.IFINDEX, 'rx1power')[0], expected_values)
def test_getpdu_xcvr_voltage_sensor_asic1(self): """ Test case for correctness of transceiver voltage sensor MIB values """ expected_values = [ rfc3433.EntitySensorDataType.VOLTS_DC, rfc3433.EntitySensorDataScale.UNITS, 4, # precision 23700, # expected sensor value rfc3433.EntitySensorStatus.OK ] self._test_getpdu_sensor( get_transceiver_sensor_sub_id(self.IFINDEX_ASIC1, SENSOR_TYPE_VOLTAGE)[0], expected_values)
def test_getpdu_xcvr_tx_bias_sensor(self): """ Test case for correct transceiver tx bias sensor MIB values """ expected_values = [ rfc3433.EntitySensorDataType.AMPERES, rfc3433.EntitySensorDataScale.MILLI, 3, # precision 4440, # expected sensor value rfc3433.EntitySensorStatus.OK ] # test for each channel for channel in (2, 4): sensor = 'tx{}bias'.format(channel) self._test_getpdu_xcvr_sensor( get_transceiver_sensor_sub_id(self.IFINDEX, sensor)[0], expected_values)
def test_getpdu_xcvr_tx_power_sensor(self): """ Test case for correct transceiver rx power sensor MIB values """ expected_values = [ rfc3433.EntitySensorDataType.WATTS, rfc3433.EntitySensorDataScale.MILLI, 4, # precision 2884, # expected sensor value rfc3433.EntitySensorStatus.OK ] # test for each channel except first, we already test above for channel in (1, 2, 3, 4): sensor = 'tx{}power'.format(channel) self._test_getpdu_xcvr_sensor( get_transceiver_sensor_sub_id(self.IFINDEX, sensor)[0], expected_values)
def test_getpdu_xcvr_rx_power_sensor(self): """ Test case for correct transceiver rx power sensor MIB values """ expected_values = [ rfc3433.EntitySensorDataType.WATTS, rfc3433.EntitySensorDataScale.MILLI, 4, # precision 7998, # expected sensor value rfc3433.EntitySensorStatus.OK ] # test for each channel except first, we already test above for channel in (2, 3, 4): self._test_getpdu_xcvr_sensor( get_transceiver_sensor_sub_id( self.IFINDEX, SENSOR_TYPE_PORT_RX_POWER + channel)[0], expected_values)
def test_getpdu_xcvr_tx_bias_sensor(self): """ Test case for correctness of transceiver tx bias sensor MIB values """ expected_values = [ rfc3433.EntitySensorDataType.AMPERES, rfc3433.EntitySensorDataScale.MILLI, 3, # precision 4440, # expected sensor value rfc3433.EntitySensorStatus.OK ] # test for each channel for channel in (2, 4): self._test_getpdu_sensor( get_transceiver_sensor_sub_id( self.IFINDEX, SENSOR_TYPE_PORT_TX_BIAS + channel)[0], expected_values)
def test_getpdu_xcvr_dom(self): expected_mib = { get_transceiver_sensor_sub_id(1, 'temperature')[0]: "DOM Temperature Sensor for etp1", get_transceiver_sensor_sub_id(1, 'voltage')[0]: "DOM Voltage Sensor for etp1", get_transceiver_sensor_sub_id(1, 'rx1power')[0]: "DOM RX Power Sensor for etp1/1", get_transceiver_sensor_sub_id(1, 'rx2power')[0]: "DOM RX Power Sensor for etp1/2", get_transceiver_sensor_sub_id(1, 'rx3power')[0]: "DOM RX Power Sensor for etp1/3", get_transceiver_sensor_sub_id(1, 'rx4power')[0]: "DOM RX Power Sensor for etp1/4", get_transceiver_sensor_sub_id(1, 'tx1bias')[0]: "DOM TX Bias Sensor for etp1/1", get_transceiver_sensor_sub_id(1, 'tx2bias')[0]: "DOM TX Bias Sensor for etp1/2", get_transceiver_sensor_sub_id(1, 'tx3bias')[0]: "DOM TX Bias Sensor for etp1/3", get_transceiver_sensor_sub_id(1, 'tx4bias')[0]: "DOM TX Bias Sensor for etp1/4", get_transceiver_sensor_sub_id(1, 'tx1power')[0]: "DOM TX Power Sensor for etp1/1", get_transceiver_sensor_sub_id(1, 'tx2power')[0]: "DOM TX Power Sensor for etp1/2", get_transceiver_sensor_sub_id(1, 'tx3power')[0]: "DOM TX Power Sensor for etp1/3", get_transceiver_sensor_sub_id(1, 'tx4power')[0]: "DOM TX Power Sensor for etp1/4", } phyDescr, phyClass = 2, 5 # check physical class value oids = [ ObjectIdentifier( 12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, field_id, sub_id)) for field_id in (phyDescr, phyClass) for sub_id in expected_mib ] get_pdu = GetNextPDU(header=PDUHeader(1, PduTypes.GET, 16, 0, 42, 0, 0, 0), oids=oids) encoded = get_pdu.encode() response = get_pdu.make_response(self.lut) for mib_key, value in zip(expected_mib, response.values): if phyClass == value.name.subids[-2]: sub_id = (phyClass, mib_key) expected_type, expected_value = ValueType.INTEGER, PhysicalClass.SENSOR elif phyDescr == value.name.subids[-2]: sub_id = (phyDescr, mib_key) expected_type, expected_value = ValueType.OCTET_STRING, expected_mib[ mib_key] else: # received unexpected self.assertTrue(False) expected_oid = ObjectIdentifier( 12, 0, 1, 0, (1, 3, 6, 1, 2, 1, 47, 1, 1, 1, 1, *sub_id)) self.assertEqual(str(value.name), str(expected_oid)) self.assertEqual(value.type_, expected_type) self.assertEqual(str(value.data), str(expected_value))