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)
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)
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)
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"))
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))
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))
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, "")