Пример #1
0
    def test_int_sensor(self):
        """Test integer sensor."""
        s = Sensor.integer("an.int", "An integer.", "count", [-4, 3])
        self.assertEqual(s.stype, 'integer')
        s.set(timestamp=12345, status=katcp.Sensor.NOMINAL, value=3)
        # test both read_formatted and format_reading
        self.assertEqual(s.format_reading(s.read()),
                         ("12345.000000", "nominal", "3"))
        self.assertEqual(s.read_formatted(), ("12345.000000", "nominal", "3"))
        self.assertEquals(s.parse_value("3"), 3)
        self.assertEquals(s.parse_value("4"), 4)
        self.assertEquals(s.parse_value("-10"), -10)
        self.assertRaises(ValueError, s.parse_value, "asd")

        s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [-20, 20])
        self.assertEquals(s.value(), 0)
        s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [2, 20])
        self.assertEquals(s.value(), 2)
        s = Sensor.integer("an.int",
                           "An integer.",
                           "count", [2, 20],
                           default=5)
        self.assertEquals(s.value(), 5)
        self.assertEquals(s.status(), Sensor.UNKNOWN)
        s = Sensor.integer("an.int",
                           "An integer.",
                           "count", [2, 20],
                           initial_status=Sensor.NOMINAL)
        self.assertEquals(s.status(), Sensor.NOMINAL)
Пример #2
0
    def test_int_sensor(self):
        """Test integer sensor."""
        s = Sensor.integer("an.int", "An integer.", "count", [-4, 3])
        self.assertEqual(s.stype, 'integer')
        s.set(timestamp=12345, status=katcp.Sensor.NOMINAL, value=3)
        self.assertEqual(s.read_formatted(), ("12345.000000", "nominal", "3"))
        self.assertEquals(s.parse_value("3"), 3)
        self.assertEquals(s.parse_value("4"), 4)
        self.assertEquals(s.parse_value("-10"), -10)
        self.assertRaises(ValueError, s.parse_value, "asd")

        s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [-20, 20])
        self.assertEquals(s.value(), 0)
        s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [2, 20])
        self.assertEquals(s.value(), 2)
        s = Sensor.integer("an.int", "An integer.", "count", [2, 20], default=5)
        self.assertEquals(s.value(), 5)
Пример #3
0
    def test_int_sensor_from_native_strings(self):
        """Test integer sensor initialised from native strings."""
        s = Sensor.integer("an.int", "An integer.", "count", [-4, 3])
        # sensor attributes must be native strings
        self.assertEqual(s.name, "an.int")
        self.assertEqual(s.units, "count")
        self.assertEqual(s.description, "An integer.")
        self.assertEqual(s.stype, "integer")
        s.set(timestamp=12345, status=Sensor.NOMINAL, value=3)
        # test both read_formatted and format_reading
        self.assertEqual(s.format_reading(s.read()),
                         (b"12345.000000", b"nominal", b"3"))
        self.assertEqual(s.read_formatted(),
                         (b"12345.000000", b"nominal", b"3"))
        self.assertEqual(s.parse_value(b"3"), 3)
        self.assertEqual(s.parse_value(b"4"), 4)
        self.assertEqual(s.parse_value(b"-10"), -10)
        self.assertRaises(ValueError, s.parse_value, b"asd")
        self.assertRaises(KatcpTypeError, s.parse_value, u"asd")
        self.assertRaises(KatcpTypeError, s.parse_value, u"3")

        s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [-20, 20])
        self.assertEqual(s.value(), 0)
        s = Sensor(Sensor.INTEGER, "an.int", "An integer.", "count", [2, 20])
        self.assertEqual(s.value(), 2)
        s = Sensor.integer("an.int",
                           "An integer.",
                           "count", [2, 20],
                           default=5)
        self.assertEqual(s.value(), 5)
        self.assertEqual(s.status(), Sensor.UNKNOWN)
        s = Sensor.integer("an.int",
                           "An integer.",
                           "count", [2, 20],
                           initial_status=Sensor.NOMINAL)
        self.assertEqual(s.status(), Sensor.NOMINAL)
Пример #4
0
 def test_int_sensor_from_byte_strings(self):
     """Test integer sensor initialised from byte strings."""
     s = Sensor.integer(b"an.int", b"An integer.", b"count", [-4, 3])
     # sensor attributes must be native strings
     self.assertEqual(s.name, "an.int")
     self.assertEqual(s.units, "count")
     self.assertEqual(s.description, "An integer.")
     self.assertEqual(s.stype, "integer")
     s.set(timestamp=12345, status=Sensor.NOMINAL, value=3)
     self.assertEqual(s.value(), 3)
     # after formatting, byte strings are required
     self.assertEqual(s.format_reading(s.read()),
                      (b"12345.000000", b"nominal", b"3"))
     self.assertEqual(s.read_formatted(),
                      (b"12345.000000", b"nominal", b"3"))
Пример #5
0
    def test_set_and_get_value(self):
        """Test getting and setting a sensor value."""
        s = Sensor.integer("an.int", "An integer.", "count", [-4, 3])
        s.set(timestamp=12345, status=katcp.Sensor.NOMINAL, value=3)

        self.assertEqual(s.value(), 3)

        s.set_value(2)
        self.assertEqual(s.value(), 2)

        s.set_value(3, timestamp=12345)
        self.assertEqual(s.read(), (12345, katcp.Sensor.NOMINAL, 3))

        s.set_value(5, timestamp=12345)
        self.assertEqual(s.read(), (12345, katcp.Sensor.NOMINAL, 5))

        s.set_formatted("12346.1", "nominal", "-2")
        self.assertEqual(s.read(), (12346.1, katcp.Sensor.NOMINAL, -2))

        # Test setting with katcp v4 parsing
        s.set_formatted("12347100", "warn", "-3", major=4)
        self.assertEqual(s.read(), (12347.1, katcp.Sensor.WARN, -3))
Пример #6
0
    def test_set_and_get_value(self):
        """Test getting and setting a sensor value."""
        s = Sensor.integer("an.int", "An integer.", "count", [-4, 3])
        s.set(timestamp=12345, status=Sensor.NOMINAL, value=3)

        self.assertEqual(s.value(), 3)

        s.set_value(2)
        self.assertEqual(s.value(), 2)

        s.set_value(3, timestamp=12345)
        self.assertEqual(s.read(), (12345, Sensor.NOMINAL, 3))

        s.set_value(5, timestamp=12345)
        self.assertEqual(s.read(), (12345, Sensor.NOMINAL, 5))

        s.set_formatted(b'12346.1', b'nominal', b'-2')
        self.assertEqual(s.read(), (12346.1, Sensor.NOMINAL, -2))

        # Test setting with katcp v4 parsing
        s.set_formatted(b'12347100', b'warn', b'-3', major=4)
        self.assertEqual(s.read(), (12347.1, Sensor.WARN, -3))
Пример #7
0
 def test_units_none(self):
     """Test units initialised to None results in empty string."""
     s = Sensor.integer("a sens", None, None, None)
     self.assertEqual(s.units, "")