Ejemplo n.º 1
0
async def test_write_non_string_identifier_and_tags(client):
    point = dict(tags={1: 2}, fields={3: 4})
    with pytest.warns(UserWarning):
        assert await client.write(point, measurement='my_measurement')
    resp = await client.query('SELECT * FROM my_measurement')
    logger.info(resp)
    assert len(resp['results'][0]['series'][0]['values']) == 1
Ejemplo n.º 2
0
async def test_decorator(client):
    @lineprotocol
    class MyPoint(NamedTuple):
        measurement: aioinflux.MEASUREMENT
        time: aioinflux.TIMEINT
        host: aioinflux.TAG
        running: aioinflux.BOOL
        users: aioinflux.INT
        cpu_load: aioinflux.FLOAT
        cpu_load_level: aioinflux.ENUM
        cpu_load_level_tag: aioinflux.TAGENUM
        uuid: aioinflux.STR

    p = MyPoint(
        measurement="dp",
        time=1500,
        host="us1",
        running=True,
        users=1000,
        cpu_load=99.5,
        cpu_load_level=CpuLoad.HIGH,
        cpu_load_level_tag=CpuLoad.LOW,
        uuid=str(uuid.uuid4()),
    )
    assert p
    assert hasattr(p, 'to_lineprotocol')
    assert await client.write(p)
    logger.info(await client.query('SELECT * FROM dp'))
    logger.info(await client.query("SHOW FIELD KEYS FROM dp"))
Ejemplo n.º 3
0
def test_read_dataframe_multistatement(df_client):
    df_list = df_client.query('SELECT max(*) from m1;SELECT min(*) from m2')
    logger.info(df_list)
    assert type(df_list) is list
    assert 'm1' in df_list[0]
    assert 'm2' in df_list[1]
    assert df_list[0]['m1'].shape == (1, 5)
    assert df_list[1]['m2'].shape == (1, 5)
Ejemplo n.º 4
0
async def test_iterpoints_with_parser(iter_client):
    r = await iter_client.query("SELECT * FROM cpu_load LIMIT 3")
    parser = lambda *x, meta: dict(zip(meta['columns'], x))  # noqa
    for i in iterpoints(r, parser):
        logger.info(i)
        assert 'time' in i
        assert 'value' in i
        assert 'host' in i
Ejemplo n.º 5
0
def test_read_dataframe_groupby(df_client):
    df_dict = df_client.query('SELECT max(*) from /m[1-2]$/ GROUP BY "tag"')
    s = ['\n{}:\n{}'.format(k, v) for k, v in df_dict.items()]
    logger.info('\n'.join(s))
    m1 = pd.concat([df for k, df in df_dict.items() if k.split(',')[0] == 'm1'])
    m2 = pd.concat([df for k, df in df_dict.items() if k.split(',')[0] == 'm2'])
    assert m1.shape == (5, 6)
    assert m2.shape == (5, 6)
Ejemplo n.º 6
0
async def test_write_to_non_default_db(client):
    points = [p for p in utils.random_points(5)]
    await client.create_database(db='temp_db')
    assert client.db != 'temp_db'
    assert await client.write(points, db='temp_db')
    resp = await client.query('SELECT * FROM temp_db..test_measurement')
    logger.info(resp)
    assert len(resp['results'][0]['series'][0]['values']) == 5
    await client.drop_database(db='temp_db')
Ejemplo n.º 7
0
async def test_write_to_non_default_rp(client):
    db = client.db
    await client.query(
        f"CREATE RETENTION POLICY myrp ON {db} DURATION 1h REPLICATION 1")
    points = [p for p in utils.random_points(5)]
    assert await client.write(points, rp='myrp')
    resp = await client.query(f"SELECT * from {db}.myrp.test_measurement")
    logger.info(resp)
    assert len(resp['results'][0]['series'][0]['values']) == 5
Ejemplo n.º 8
0
async def test_write_without_timestamp(client):
    points = [p for p in utils.random_points(9)]
    for p in points:
        _ = p.pop('time')
        _ = p.pop('measurement')
    logger.info(points)
    assert await client.write(points, measurement='yet_another_measurement')
    resp = await client.query('SELECT * FROM yet_another_measurement')
    # Points with the same tag/timestamp set are overwritten
    assert len(resp['results'][0]['series'][0]['values']) == 1
Ejemplo n.º 9
0
async def test_write_with_custom_measurement(client):
    points = [p for p in utils.random_points(5)]
    for p in points:
        _ = p.pop('measurement')
    logger.info(points)
    with pytest.raises(ValueError):
        assert await client.write(points)
    assert await client.write(points, measurement='another_measurement')
    resp = await client.query('SELECT * FROM another_measurement')
    assert len(resp['results'][0]['series'][0]['values']) == 5
Ejemplo n.º 10
0
def test_repr(client):
    logger.info(client)
Ejemplo n.º 11
0
def test_read_dataframe(df_client):
    df = df_client.query('SELECT * from m1')
    logger.info(f'\n{df.head()}')
    assert df.shape == (50, 8)
Ejemplo n.º 12
0
def test_select_into(df_client):
    df_client.query("SELECT * INTO m2_copy from m2")
    df = df_client.query('SELECT * from m2_copy')
    assert df.shape == (50, 8)
    logger.info(f'\n{df.head()}')
Ejemplo n.º 13
0
def test_read_dataframe_show_databases(df_client):
    df = df_client.show_databases()
    assert isinstance(df.index, pd.RangeIndex)
    assert 'name' in df.columns
    logger.info(f'\n{df.head()}')