Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #8
0
    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)
Beispiel #9
0
    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)
Beispiel #10
0
    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)
Beispiel #11
0
    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)
Beispiel #12
0
    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))