class TestSineWaveSensor(DatabaseTest): def setup(self): self.period = 0.1 self.max = 8 self.min = -2 self.sensor = SineWaveSensor(sensor_name="sine", period = self.period, max_value=self.max, min_value=self.min) super().setup() def test_read_sensor(self): start_val = self.sensor.read()[0] ok_(isinstance(start_val, Sensor.value_type), "Type of values should be SensorDataValues, got {}".format( type(start_val))) # check the period works properly sleep(self.period * 0.95) end_val = self.sensor.read()[0] ok_(abs(end_val.value - start_val.value) < 1, "Sine Wave sensor should have appropriate periodicity. Got values " "start: {}, end: {}".format(start_val.value, end_val.value)) # make sure the value is actually changing sleep(self.period * 0.3) val = self.sensor.read()[0] ok_(val.value < self.max and val.value > self.min, "Value {} should be between {} and {}".format(val.value, self.min, self.max)) ok_(abs(val.value - end_val.value) > 1, "Value {} should have changed " "from {}".format(val.value, end_val.value))
def setup(self): self.period = 0.1 self.max = 8 self.min = -2 self.sensor = SineWaveSensor(sensor_name="sine", period = self.period, max_value=self.max, min_value=self.min) super().setup()