Exemplo n.º 1
0
def test_moving_true_percentage_without_measurements(sample_measurement,
                                                     sample_database,
                                                     database):
    database_client = DatabaseClient(database, db_name=sample_database)
    with pytest.raises(RuntimeError):
        database_client.moving_true_percentage(sample_measurement,
                                               time_window='0s')
Exemplo n.º 2
0
def test_moving_max_of_last_3_measurements(sample_data, sample_measurement,
                                           sample_database,
                                           database_with_data):
    database_client = DatabaseClient(database_with_data,
                                     db_name=sample_database)
    expected = max(sample_data[-3:])
    actual = database_client.moving_max(sample_measurement, time_window='4s')
    assert expected == actual
Exemplo n.º 3
0
def test_moving_max_of_all_measurements(sample_data, sample_measurement,
                                        sample_database, database_with_data):
    database_client = DatabaseClient(database_with_data,
                                     db_name=sample_database)
    expected = max(sample_data)
    actual = database_client.moving_max(
        sample_measurement, time_window='{}s'.format(len(sample_data) + 1))
    assert expected == actual
Exemplo n.º 4
0
def test_moving_average_of_last_2_measurements(sample_data, sample_measurement,
                                               sample_database,
                                               database_with_data):
    database_client = DatabaseClient(database_with_data,
                                     db_name=sample_database)
    expected = statistics.mean(sample_data[-2:])
    actual = database_client.moving_average(sample_measurement,
                                            time_window='3s')
    assert expected == actual
Exemplo n.º 5
0
def test_moving_true_percentage_of_last_3_measurements(
        sample_bool_data, sample_measurement, sample_database,
        database_with_bool_data):
    database_client = DatabaseClient(database_with_bool_data,
                                     db_name=sample_database)
    expected = true_percentage(sample_bool_data[-3:])
    actual = database_client.moving_true_percentage(sample_measurement,
                                                    time_window='4s')
    assert expected == actual
Exemplo n.º 6
0
def on_message(_, subscriptions, message):
    try:
        logger.info('Message received')
        logger.info('Payload: {}'.format(message.payload))
        logger.info('Topic: {}'.format(message.topic))
        topic = message.topic
        subscription = subscriptions[topic]
        raw_value = message.payload.decode().replace(',', '.')
        with DatabaseClient() as db_client:
            db_client.save(subscription['measurement'],
                           subscription['type'](raw_value))
    except Exception:
        logger.exception('Unknown exception occurred in on_message')
Exemplo n.º 7
0
def main():
    log.setup_logging()

    try:
        with arinna.mqtt_client.MQTTClient() as mqtt_client, \
                DatabaseClient() as inverter_database:
            mqtt_client.loop_start()
            publisher = inverter_provider.InverterMQTTPublisher(mqtt_client)
            charger = Charger(publisher)
            charging_manager = ChargingManager(inverter_database, charger)
            now = datetime.now().time()
            charging_manager.process(now)
            mqtt_client.loop_stop()
    except Exception:
        logger.exception('Unknown exception occurred')

    return 0
Exemplo n.º 8
0
def test_moving_average_without_measurements(sample_measurement,
                                             sample_database, database):
    database_client = DatabaseClient(database, db_name=sample_database)
    with pytest.raises(RuntimeError):
        database_client.moving_average(sample_measurement, '1m')
Exemplo n.º 9
0
def database_default_constructor():
    database_client = DatabaseClient()
    assert database_client.db_client is not None
    assert 'inverter' == database_client.db_name
Exemplo n.º 10
0
def test_save(database, sample_measurement):
    database_client = DatabaseClient(database)
    values = [1, 2]
    for v in values:
        database_client.save(sample_measurement, v)
    assert database_client.load(sample_measurement, '1s') == values
Exemplo n.º 11
0
def test_load(sample_data, sample_measurement, sample_database,
              database_with_data):
    database_client = DatabaseClient(database_with_data,
                                     db_name=sample_database)
    assert sample_data == database_client.load(
        sample_measurement, time_window='{}s'.format(len(sample_data) + 1))
Exemplo n.º 12
0
def test_database_client_context_manager_support(database):
    database_client = DatabaseClient(database)
    with database_client as db_client:
        assert db_client