Esempio n. 1
0
    def test_index_timestamp_reverse_order(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        old = DigitalSensorReading()
        old.name = "testsensor"
        old.value = True
        old.timestamp = datetime.now()

        new = DigitalSensorReading()
        new.name = "testsensor"
        new.value = True
        new.timestamp = datetime.now()

        service.create(old)
        service.create(new)

        client = web.app.test_client()

        rv = client.get("/")

        rv_str = rv.data.decode("utf-8")

        matches = re.findall("\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d\d\d\d\d\d", rv_str)

        assert matches[0] == str(new.timestamp)
        assert matches[1] == str(old.timestamp)
Esempio n. 2
0
    def test_index_timestamp_reverse_order(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        old = DigitalSensorReading()
        old.name = 'testsensor'
        old.value = True
        old.timestamp = datetime.now()

        new = DigitalSensorReading()
        new.name = 'testsensor'
        new.value = True
        new.timestamp = datetime.now()

        service.create(old)
        service.create(new)

        client = web.app.test_client()

        rv = client.get('/')

        rv_str = rv.data.decode('utf-8')

        matches = re.findall('\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d\d\d\d\d\d',
                             rv_str)

        assert matches[0] == str(new.timestamp)
        assert matches[1] == str(old.timestamp)
Esempio n. 3
0
    def test_get_newest_notification_excludes_other_sensors(self, sqlalchemy):
        reading_service = SensorReadingPersistenceService()
        notification_service = NotificationPersistenceService()

        included_sensor = DigitalSensorReading()
        included_sensor.name = 'included'
        reading_service.create(included_sensor)

        excluded_sensor = DigitalSensorReading()
        excluded_sensor.name = 'excluded'
        reading_service.create(excluded_sensor)

        excluded_notification = NotificationEvent()
        excluded_notification.sensor_id = excluded_sensor.id
        excluded_notification.timestamp = datetime(2016, 1, 1)
        notification_service.create(excluded_notification)

        included_notification = NotificationEvent()
        included_notification.sensor_id = included_sensor.id
        included_notification.timestamp = datetime(2015, 1, 1)
        notification_service.create(included_notification)

        assert notification_service.get_newest_notification('included') \
            .timestamp == included_notification.timestamp
Esempio n. 4
0
    def test_get_newest_notification_excludes_other_sensors(self, sqlalchemy):
        reading_service = SensorReadingPersistenceService()
        notification_service = NotificationPersistenceService()

        included_sensor = DigitalSensorReading()
        included_sensor.name = 'included'
        reading_service.create(included_sensor)

        excluded_sensor = DigitalSensorReading()
        excluded_sensor.name = 'excluded'
        reading_service.create(excluded_sensor)

        excluded_notification = NotificationEvent()
        excluded_notification.sensor_id = excluded_sensor.id
        excluded_notification.timestamp = datetime(2016, 1, 1)
        notification_service.create(excluded_notification)

        included_notification = NotificationEvent()
        included_notification.sensor_id = included_sensor.id
        included_notification.timestamp = datetime(2015, 1, 1)
        notification_service.create(included_notification)

        assert notification_service.get_newest_notification('included') \
            .timestamp == included_notification.timestamp
Esempio n. 5
0
    def _read_digital_sensor(self, digital_sensor):
        value = digital_sensor.read_digital_sensor()

        digital_reading = DigitalSensorReading()
        digital_reading.name = digital_sensor.sensor_name
        digital_reading.value = value
        digital_reading.timestamp = datetime.now()
        self.sensor_persistence.create(digital_reading)

        if value != digital_sensor.normal_value:
            logger.info(digital_reading.name + ' Digital Sensor Value: ' +
                        str(digital_reading.value) + ' - Out of Normal Range')

            self._send_notification(digital_sensor, digital_reading)
        else:
            logger.info(digital_reading.name + ' Digital Sensor Value: ' +
                        str(digital_reading.value) + ' - Within Normal Range')
Esempio n. 6
0
    def test_index_digital_sensor_reading(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        timestamp = datetime.now()

        reading = DigitalSensorReading()
        reading.name = "testsensor"
        reading.value = True
        reading.timestamp = timestamp

        service.create(reading)

        client = web.app.test_client()

        rv = client.get("/")

        assert b"testsensor" in rv.data
        assert b"Digital" in rv.data
        assert b"True" in rv.data
        assert str.encode(str(timestamp)) in rv.data
Esempio n. 7
0
    def test_index_digital_sensor_reading(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        timestamp = datetime.now()

        reading = DigitalSensorReading()
        reading.name = 'testsensor'
        reading.value = True
        reading.timestamp = timestamp

        service.create(reading)

        client = web.app.test_client()

        rv = client.get('/')

        assert b'testsensor' in rv.data
        assert b'Digital' in rv.data
        assert b'True' in rv.data
        assert str.encode(str(timestamp)) in rv.data