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')
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
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
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
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
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')
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
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')
def database_default_constructor(): database_client = DatabaseClient() assert database_client.db_client is not None assert 'inverter' == database_client.db_name
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
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))
def test_database_client_context_manager_support(database): database_client = DatabaseClient(database) with database_client as db_client: assert db_client