Exemple #1
0
async def test_run_error(influx_mock, app, client, mocker):
    data_writer = influx.get_data_writer(app)
    influx_mock.ping.side_effect = RuntimeError

    await asyncio.sleep(0.1)
    assert data_writer.active
    assert influx_mock.ping.call_count > 0
Exemple #2
0
async def test_running_writer(influx_mock, app, client, mocker):
    writer = influx.get_data_writer(app)

    writer.write_soon(
        measurement='measurement',
        fields=dict(field1=1, field2=2),
        tags=dict(tag1=1, tag2=2)
    )

    await asyncio.sleep(0.1)
    assert writer.active
    assert not writer._pending
    assert influx_mock.write.call_count == 1
Exemple #3
0
async def test_retry_generate_connection(influx_mock, app, client):
    writer = influx.get_data_writer(app)
    await writer.shutdown(app)

    influx_mock.ping.reset_mock()
    influx_mock.create_database.reset_mock()

    influx_mock.ping.side_effect = ClientConnectionError

    await writer.startup(app)
    await asyncio.sleep(0.1)

    # generate_connections() keeps trying, but no success so far
    assert writer.active
    assert influx_mock.ping.call_count > 0
    assert influx_mock.create_database.call_count == 0
Exemple #4
0
async def test_avoid_overflow(influx_mock, app, client, fewer_max_points):
    influx_mock.create_database.side_effect = ClientConnectionError

    writer = influx.get_data_writer(app)
    await writer.shutdown(app)
    await writer.startup(app)

    for i in range(2 * influx.MAX_PENDING_POINTS):
        writer.write_soon(
            measurement='measurement',
            fields=dict(field1=1, field2=2),
            tags=dict(tag1=1, tag2=2)
        )

    writer._avoid_overflow()
    assert len(writer._pending) == influx.MAX_PENDING_POINTS
    assert influx_mock.write.call_count == 0
    influx_mock.create_database.side_effect = None
    await asyncio.sleep(0.1)
Exemple #5
0
async def test_reconnect(influx_mock, app, client):
    writer = influx.get_data_writer(app)

    influx_mock.create_database.side_effect = ClientConnectionError

    await writer.shutdown(app)
    await writer.startup(app)

    writer.write_soon(
        measurement='measurement',
        fields=dict(field1=1, field2=2),
        tags=dict(tag1=1, tag2=2)
    )

    await asyncio.sleep(0.1)
    assert influx_mock.write.call_count == 0
    assert writer.active

    influx_mock.create_database.side_effect = [True]

    await asyncio.sleep(0.1)
    assert writer.active
    assert influx_mock.write.call_count == 1
Exemple #6
0
 def __init__(self, app: web.Application):
     super().__init__(app)
     self._listener = events.get_listener(app)
     self._writer = influx.get_data_writer(app)
Exemple #7
0
async def test_setup(app, client):
    assert influx.get_data_writer(app)
    assert influx.get_client(app)