def test_sampling(self): """Test getting and setting the sampling.""" s = self.sensor sampling.SampleNone(None, s) sampling.SampleAuto(None, s) sampling.SamplePeriod(None, s, 10) sampling.SampleEvent(None, s) sampling.SampleDifferential(None, s, 2) self.assertRaises(ValueError, sampling.SampleNone, None, s, "foo") self.assertRaises(ValueError, sampling.SampleAuto, None, s, "bar") self.assertRaises(ValueError, sampling.SamplePeriod, None, s) self.assertRaises(ValueError, sampling.SamplePeriod, None, s, "1.5") self.assertRaises(ValueError, sampling.SamplePeriod, None, s, "-1") self.assertRaises(ValueError, sampling.SampleEvent, None, s, "foo") self.assertRaises(ValueError, sampling.SampleDifferential, None, s) self.assertRaises(ValueError, sampling.SampleDifferential, None, s, "-1") self.assertRaises(ValueError, sampling.SampleDifferential, None, s, "1.5") sampling.SampleStrategy.get_strategy("none", None, s) sampling.SampleStrategy.get_strategy("auto", None, s) sampling.SampleStrategy.get_strategy("period", None, s, "15") sampling.SampleStrategy.get_strategy("event", None, s) sampling.SampleStrategy.get_strategy("differential", None, s, "2") self.assertRaises(ValueError, sampling.SampleStrategy.get_strategy, "random", None, s) self.assertRaises(ValueError, sampling.SampleStrategy.get_strategy, "period", None, s, "foo") self.assertRaises(ValueError, sampling.SampleStrategy.get_strategy, "differential", None, s, "bar")
def test_event(self): """Test SampleEvent strategy.""" DUT = sampling.SampleEvent(self.inform, self.sensor) self.assertEqual(DUT.get_sampling_formatted(), (b'event', [])) self.assertEqual(self.calls, []) DUT.start() yield self.wake_ioloop() # Check initial update self.assertEqual(len(self.calls), 1) # Jump forward a lot, should not result in another sample yield self.set_ioloop_time(200000) self.assertEqual(len(self.calls), 1) self.sensor.set_value(2, status=Sensor.NOMINAL) self.assertEqual(len(self.calls), 2) # Test that an update is suppressed if the sensor value is unchanged self.sensor.set_value(2, status=Sensor.NOMINAL) self.assertEqual(len(self.calls), 2) # Test that an update happens if the status changes even if the value is # unchanged self.sensor.set_value(2, status=Sensor.WARN) self.assertEqual(len(self.calls), 3)
def test_event(self): """Test SampleEvent strategy.""" event = sampling.SampleEvent(self.inform, self.sensor) self.assertEqual(self.calls, []) event.attach() self.assertEqual(len(self.calls), 1) self.sensor.set_value(2) self.assertEqual(len(self.calls), 2)
def test_event_with_rate_limit(self): """Test SampleEvent strategy with a rate limit.""" event = sampling.SampleEvent(self.inform, self.sensor, 100) self.assertEqual(self.calls, []) event.attach() self.assertEqual(len(self.calls), 1) for i in [-4, -3, -2, -1, 0, 1, 2, 3]: self.sensor.set_value(i) self.assertEqual(len(self.calls), 1) time.sleep(0.1) self.sensor.set_value(3) self.assertEqual(len(self.calls), 1)
def test_event(self): """Test SampleEvent strategy.""" event = sampling.SampleEvent(self.inform, self.sensor) self.assertEqual(event.get_sampling_formatted(), ('event', []) ) self.assertEqual(self.calls, []) event.attach() self.assertEqual(len(self.calls), 1) self.sensor.set_value(2, status=Sensor.NOMINAL) self.assertEqual(len(self.calls), 2) # Test that an update is suppressed if the sensor value is unchanged self.sensor.set_value(2, status=Sensor.NOMINAL) self.assertEqual(len(self.calls), 2) # Test that an update happens if the status changes even if the value is # unchanged self.sensor.set_value(2, status=Sensor.WARN) self.assertEqual(len(self.calls), 3)