Пример #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)
Пример #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)
Пример #3
0
    def test_digital_sensor_reading(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        reading = DigitalSensorReading()
        service.create(reading)

        assert service.get(reading.id).id == reading.id
Пример #4
0
    def test_all_reversed_bad_paging(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        older = AnalogSensorReading()
        older.timestamp = datetime.now()

        newer = DigitalSensorReading()
        newer.timestamp = datetime.now()

        service.create(older)
        service.create(newer)

        paged = service.all_reversed(1000, 1)
        assert paged.elements == []

        paged = service.all_reversed(-1, 1)
        assert paged.elements == []
Пример #5
0
    def test_all_reversed_bad_paging(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        older = AnalogSensorReading()
        older.timestamp = datetime.now()

        newer = DigitalSensorReading()
        newer.timestamp = datetime.now()

        service.create(older)
        service.create(newer)

        paged = service.all_reversed(1000, 1)
        assert paged.elements == []

        paged = service.all_reversed(-1, 1)
        assert paged.elements == []
Пример #6
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')
Пример #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
Пример #8
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
Пример #9
0
    def test_polymorphic(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        reading = SensorReading()
        analog = AnalogSensorReading()
        digital = DigitalSensorReading()

        service.create(reading)
        service.create(analog)
        service.create(digital)

        assert len(service.all()) == 3
Пример #10
0
    def test_all_reversed(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        older = AnalogSensorReading()
        older.timestamp = datetime.now()

        newer = DigitalSensorReading()
        newer.timestamp = datetime.now()

        service.create(older)
        service.create(newer)

        paged = service.all_reversed(0, 100)
        assert paged.page_number == 0
        assert paged.page_size == 100
        assert paged.total_pages == 1

        readings = paged.elements
        assert readings[0].timestamp == newer.timestamp
        assert readings[1].timestamp == older.timestamp

        assert len(readings) == 2
Пример #11
0
    def test_all_reversed(self, sqlalchemy):
        service = SensorReadingPersistenceService()

        older = AnalogSensorReading()
        older.timestamp = datetime.now()

        newer = DigitalSensorReading()
        newer.timestamp = datetime.now()

        service.create(older)
        service.create(newer)

        paged = service.all_reversed(0, 100)
        assert paged.page_number == 0
        assert paged.page_size == 100
        assert paged.total_pages == 1

        readings = paged.elements
        assert readings[0].timestamp == newer.timestamp
        assert readings[1].timestamp == older.timestamp

        assert len(readings) == 2
Пример #12
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
Пример #13
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