示例#1
0
    def test_not_expired(self):
        # set up
        with self.mysql.dao.create_session() as session:
            session.add(
                SensorModel(name='thermometer.room',
                            value=25,
                            time=datetime.now() - timedelta(seconds=30)))

        # test
        with self.mysql.dao.SessionContext():
            result = self.sensor.should_update()
            self.assertFalse(result)
示例#2
0
    def test_outdated(self):
        # set up
        with self.mysql.dao.create_session() as session:
            session.add(
                SensorModel(name='thermometer.room',
                            value=25,
                            time=datetime(2000, 1, 1)))

        # test
        with self.mysql.dao.SessionContext():
            available = self.sensor.available()
            self.assertFalse(available)
示例#3
0
    def test_expired(self):
        # set up
        with self.mysql.dao.create_session() as session:
            session.add(
                SensorModel(name='thermometer.room',
                            value=json.dumps(25),
                            time=datetime(2000, 1, 1)))

        # test
        with self.mysql.dao.SessionContext():
            self.assertEqual(datetime(2000, 1, 1), self.sensor.time())
            with self.assertRaises(ExpiredError):
                self.sensor.value()
示例#4
0
    def test_success(self):
        # set up
        self.useFixture(
            DateTimeFixture('atlantis.core.sensor.datetime',
                            datetime(2000, 1, 1, 0, 0, 0)))
        with self.mysql.dao.create_session() as session:
            session.add(
                SensorModel(name='thermometer.room',
                            value=json.dumps(25),
                            time=datetime(2000, 1, 1)))

        # test
        with self.mysql.dao.SessionContext():
            self.assertEqual(25, self.sensor.value())
            self.assertEqual(datetime(2000, 1, 1), self.sensor.time())
 def test(self):
     # set up
     class Sensor(DeviceComponent):
         model_type = SensorModel
     class ThermometerDevice(AbstractDevice):
         @Sensor
         def room(self):
             pass
     with self.mysql.dao.create_session() as session:
         session.add(SensorModel(name='thermometer.room'))
         
     # test
     with self.mysql.dao.SessionContext():
         model = ThermometerDevice().room._get_model()
         self.assertEqual('thermometer.room', model.name)
示例#6
0
    def test_no_interval(self):
        # set up
        class ThermometerDevice(AbstractDevice):
            @Sensor(interval=None)
            def room(self):
                return 25

        with self.mysql.dao.create_session() as session:
            session.add(
                SensorModel(name='thermometer.room',
                            value=25,
                            time=datetime.now() - timedelta(seconds=3600)))

        # test
        with self.mysql.dao.SessionContext():
            result = ThermometerDevice().room.should_update()
            self.assertFalse(result)
示例#7
0
    def test_no_interval(self):
        # set up
        class ThermometerDevice(AbstractDevice):
            @Sensor(interval=None)
            def room(self):
                return 25

        self.sensor.interval = None
        with self.mysql.dao.create_session() as session:
            session.add(
                SensorModel(name='thermometer.room',
                            value=25,
                            time=datetime(2000, 1, 1)))

        # test
        with self.mysql.dao.SessionContext():
            available = ThermometerDevice().room.available()
            self.assertTrue(available)
示例#8
0
    def test(self):
        # set up
        class ThermometerDevice(AbstractDevice):
            @Sensor
            def room(self):
                return 25

        with self.mysql.dao.create_session() as session:
            sensor = SensorModel(name='thermometer.room',
                                 error_rate=0.01,
                                 value=json.dumps(25),
                                 time=datetime(2000, 1, 1))
            session.add(sensor)

        # test
        with self.mysql.dao.SessionContext():
            results = sensors.all()
        self.assertEqual(1, len(results))
        self.assertEqual(0.01, results[0]['error_rate'])
        self.assertEqual(60, results[0]['interval'])
        self.assertEqual(datetime(2000, 1, 1), results[0]['time'])
        self.assertEqual(25, results[0]['value'])