예제 #1
0
def test_multi_measurements_1():
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    fizz = Measurement.new("fuzz")
    bizz = Measurement.new("buzz")
    query = client.query(fizz, bizz).limit(10)
    assert str(query) == "SELECT * FROM /fuzz|buzz/ LIMIT 10;"
예제 #2
0
def test_multi_measurements_2():
    db = influxdb.InfluxDBClient(database="marketdata", port=28088)
    client = InfluxAlchemy(db)
    fizz = Measurement.new("fuzz")
    bizz = Measurement.new("buzz")
    query = client.query(fizz, bizz).limit(10)

    assert None == query.first()
예제 #3
0
def test_multi_measurements_3():
    db = influxdb.InfluxDBClient(database="marketdata", port=28088)
    client = InfluxAlchemy(db)
    fizz = Measurement.new("term_structure_px")
    bizz = Measurement.new("term_structure_symbol_list")
    query = client.query(fizz, bizz).limit(2)

    rs = query.first()
    assert True == isinstance(rs, MultiResultSet)
예제 #4
0
def test_multi_measurements_4():
    db = influxdb.InfluxDBClient(database="marketdata", port=28088)
    client = InfluxAlchemy(db)
    fizz = Measurement.new("term_structure_px")
    bizz = Measurement.new("term_structure_symbol_list")
    query = client.query(fizz, bizz).limit(2)

    rs1 = query.first()

    rs2 = query.all()
    assert type(rs1) == type(rs2[0])
    assert True == isinstance(rs2, list)
    # since 2 measurement x 2 limits = 4 if all data are available
    print(len(rs2))
    assert 4 == len(rs2)
예제 #5
0
def test_limit_2(mock_limit):
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    fizz = Measurement.new("fuzz")
    query = client.query(fizz).filter_by(vendor='quandl', market='XCME')
    assert str(query) == \
        "SELECT * FROM fuzz WHERE (market = 'XCME') AND (vendor = 'quandl');"
예제 #6
0
def test_limit_2(mock_limit):
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    fizz = Measurement.new("fuzz")
    query = client.query(fizz).filter_by(vendor='quandl', market='XCME')
    assert str(query) == \
        "SELECT * FROM fuzz WHERE (market = 'XCME') AND (vendor = 'quandl');"
예제 #7
0
def test_fields(mock_flux):
    mock_res = mock.MagicMock()
    mock_res.get_points.return_value = [{"name": "fizz"}]
    mock_flux.return_value = mock_res
    db = influxdb.InfluxDBClient(database="fizz")
    client = InfluxAlchemy(db)
    assert client.fields(Measurement.new("foo")) == ["fizz"]
예제 #8
0
def test_time_between_dt():
    meas = Measurement.new("fizz")
    d = datetime(2016, 1, 1)
    exp = meas.time.between(d, "now() - 7d")
    assert exp == \
        TagExp(meas.time, " >= ", d) & \
        TagExp(meas.time, " <= ", "now() - 7d")
예제 #9
0
def test_time_between_dt():
    meas = Measurement.new("fizz")
    d = datetime(2016, 1, 1)
    exp = meas.time.between(d, "now() - 7d")
    assert exp == \
        TagExp(meas.time, " >= ", d) & \
        TagExp(meas.time, " <= ", "now() - 7d")
예제 #10
0
def test_tags(mock_flux):
    mock_res = mock.MagicMock()
    mock_res.get_points.return_value = [{'tagKey': 'sensor_id'}]
    mock_flux.return_value = mock_res
    db = influxdb.InfluxDBClient(database="fizz")
    client = InfluxAlchemy(db)
    assert client.tags(Measurement.new("environment")) == ["sensor_id"]
예제 #11
0
def test_filter(mock_qry):
    mock_qry.side_effect = influxdb.exceptions.InfluxDBClientError(None)
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    meas = Measurement.new("fizz")
    query = client.query(meas).filter(meas.buzz == "goo")
    assert repr(query) == "SELECT * FROM fizz WHERE (buzz = 'goo');"
예제 #12
0
def test_filter(mock_qry):
    mock_qry.side_effect = influxdb.exceptions.InfluxDBClientError(None)
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    meas = Measurement.new("fizz")
    query = client.query(meas).filter(meas.buzz == "goo")
    assert repr(query) == "SELECT * FROM fizz WHERE (buzz = 'goo');"
예제 #13
0
def test_tags(mock_flux):
    mock_res = mock.MagicMock()
    mock_res.get_points.return_value = [{'tagKey': 'sensor_id'}]
    mock_flux.return_value = mock_res
    db = influxdb.InfluxDBClient(database="fizz")
    client = InfluxAlchemy(db)
    assert client.tags(Measurement.new("environment")) == ["sensor_id"]
예제 #14
0
def test_filter_time_date(mock_qry):
    mock_qry.side_effect = influxdb.exceptions.InfluxDBClientError(None)
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    meas = Measurement.new("fizz")
    d = date(2016, 10, 1)
    query = client.query(meas).filter(meas.time >= d)
    assert repr(query) == "SELECT * FROM fizz WHERE (time >= '2016-10-01');"
예제 #15
0
def test_filter_time_date(mock_qry):
    mock_qry.side_effect = influxdb.exceptions.InfluxDBClientError(None)
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    meas = Measurement.new("fizz")
    d = date(2016, 10, 1)
    query = client.query(meas).filter(meas.time >= d)
    assert repr(query) == "SELECT * FROM fizz WHERE (time >= '2016-10-01');"
예제 #16
0
def test_get_empty_tags_fields(mock_fields, mock_tags):
    mock_tags.return_value = []
    mock_fields.return_value = []
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    fizz = Measurement.new("fuzz")
    query = client.query(fizz)
    assert str(query) == "SELECT * FROM fuzz;"
예제 #17
0
def test_get_empty_tags_fields(mock_fields, mock_tags):
    mock_tags.return_value = []
    mock_fields.return_value = []
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    fizz = Measurement.new("fuzz")
    query = client.query(fizz)
    assert str(query) == "SELECT * FROM fuzz;"
예제 #18
0
def test_limit_3(mock_limit):
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    fizz = Measurement.new("fuzz")
    query = client.query(fizz)\
                  .filter(fizz.foo == '123')\
                  .filter(fizz.boo == '555')\
                  .limit(2)
    assert str(query) == \
        "SELECT * FROM fuzz WHERE (foo = '123') AND (boo = '555') LIMIT 2;"
예제 #19
0
def test_limit_3(mock_limit):
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    fizz = Measurement.new("fuzz")
    query = client.query(fizz)\
                  .filter(fizz.foo == '123')\
                  .filter(fizz.boo == '555')\
                  .limit(2)
    assert str(query) == \
        "SELECT * FROM fuzz WHERE (foo = '123') AND (boo = '555') LIMIT 2;"
예제 #20
0
def test_fields(mock_flux):
    mock_res = mock.MagicMock()
    mock_res.get_points.return_value = [
        {'fieldKey': 'humidity', 'fieldType': 'float'},
        {'fieldKey': 'temperature', 'fieldType': 'float'}
    ]
    mock_flux.return_value = mock_res
    db = influxdb.InfluxDBClient(database="fizz")
    client = InfluxAlchemy(db)
    assert client.fields(Measurement.new("environment")) == ["humidity", "temperature"]
예제 #21
0
def test_fields(mock_flux):
    mock_res = mock.MagicMock()
    mock_res.get_points.return_value = [
        {'fieldKey': 'humidity', 'fieldType': 'float'},
        {'fieldKey': 'temperature', 'fieldType': 'float'}
    ]
    mock_flux.return_value = mock_res
    db = influxdb.InfluxDBClient(database="fizz")
    client = InfluxAlchemy(db)
    assert client.fields(Measurement.new("environment")) == ["humidity", "temperature"]
예제 #22
0
def test_filter_time_aware(mock_qry):
    mock_qry.side_effect = influxdb.exceptions.InfluxDBClientError(None)
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    meas = Measurement.new("fizz")
    if sys.version_info.major >= 3:
        tz_vietnam = timezone(timedelta(hours=7, minutes=7))
    else:
        tz_vietnam = timezone('Asia/Ho_Chi_Minh')
    d_low = datetime(2016, 9, 1, tzinfo=tz_vietnam)
    d_high = datetime(2016, 10, 2, 8)
    query = client.query(meas).filter(meas.time.between(d_low, d_high))
    assert repr(query) == "SELECT * FROM fizz WHERE (time >= '2016-09-01T00:00:00+07:07' AND time <= '2016-10-02T08:00:00+00:00');"
예제 #23
0
def test_filter_time_aware(mock_qry):
    mock_qry.side_effect = influxdb.exceptions.InfluxDBClientError(None)
    db = influxdb.InfluxDBClient(database="example")
    client = InfluxAlchemy(db)
    meas = Measurement.new("fizz")
    if sys.version_info.major >= 3:
        tz_vietnam = timezone(timedelta(hours=7, minutes=7))
    else:
        tz_vietnam = timezone('Asia/Ho_Chi_Minh')
    d_low = datetime(2016, 9, 1, tzinfo=tz_vietnam)
    d_high = datetime(2016, 10, 2, 8)
    query = client.query(meas).filter(meas.time.between(d_low, d_high))
    assert repr(query) == \
        "SELECT * FROM fizz WHERE (time >= '2016-09-01T00:00:00+07:07' "\
        "AND time <= '2016-10-02T08:00:00+00:00');"
def test_tag_le():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    exp = tag <= "foo"
    assert exp == TagExp("buzz", LE, "foo")
def test_meta_getattr():
    meas = Measurement.new("fizz")
    assert meas.buzz == Tag("buzz", meas)
def test_tag_gt():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    exp = tag > "foo"
    assert exp == TagExp("buzz", GT, "foo")
def test_tag_eq():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    exp = tag == "foo"
    assert exp == TagExp("buzz", EQ, "foo")
def test_tag_repr():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    assert repr(tag) == "<fizz.buzz>"
예제 #29
0
def test_greater_equal():
    meas = Measurement.new("fizz")
    exp = TagExp.greater_equal(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, GE, "goo")
예제 #30
0
def test_exp_or():
    meas = Measurement.new("fizz")
    exp0 = TagExp(meas.buzz, " = ", "goo")
    exp1 = TagExp(meas.guzz, " = ", "zoo")
    assert (exp0 | exp1) == \
        TagExp("buzz = 'goo'", " OR ", "guzz = 'zoo'")
예제 #31
0
def test_exp_inv():
    meas = Measurement.new("fizz")
    exp = TagExp(meas.buzz, EQ, "goo")
    assert ~exp == TagExp(meas.buzz, NE, "'goo'")
예제 #32
0
def test_tag_ne():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    exp = tag != "foo"
    assert exp == TagExp("buzz", NE, "foo")
예제 #33
0
def test_tag_repr():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    assert repr(tag) == "<fizz.buzz>"
예제 #34
0
def test_tag_init():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    assert tag == meas.buzz
예제 #35
0
def test_meta_measurement():
    meas = Measurement.new("fizz")
    assert meas == meas.measurement
예제 #36
0
def test_meta_ne():
    meas0 = Measurement.new("fizz")
    meas1 = Measurement.new("buzz")
    assert meas0 != meas1
예제 #37
0
def test_meta_str():
    meas = Measurement.new("fizz")
    assert str(meas) == "fizz"
def test_tag_init():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    assert tag == meas.buzz
예제 #39
0
def test_exp_ne():
    meas = Measurement.new("fizz")
    exp0 = TagExp(meas.buzz, " = ", "goo")
    exp1 = TagExp(meas.guzz, " = ", "zoo")
    assert exp0 != exp1
def test_tag_str():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    assert str(tag) == "buzz"
예제 #41
0
def test_meta_getattr():
    meas = Measurement.new("fizz")
    assert meas.buzz == Tag("buzz", meas)
예제 #42
0
def test_greater_than():
    meas = Measurement.new("fizz")
    exp = TagExp.greater_than(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, GT, "goo")
예제 #43
0
def test_notequals():
    meas = Measurement.new("fizz")
    exp = TagExp.notequals(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, NE, "goo")
def test_notequals():
    meas = Measurement.new("fizz")
    exp = TagExp.notequals(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, NE, "goo")
예제 #45
0
def test_less_than():
    meas = Measurement.new("fizz")
    exp = TagExp.less_than(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, LT, "goo")
def test_greater_than():
    meas = Measurement.new("fizz")
    exp = TagExp.greater_than(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, GT, "goo")
예제 #47
0
def test_less_equal():
    meas = Measurement.new("fizz")
    exp = TagExp.less_equal(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, LE, "goo")
def test_less_than():
    meas = Measurement.new("fizz")
    exp = TagExp.less_than(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, LT, "goo")
예제 #49
0
def test_notlike():
    meas = Measurement.new("fizz")
    exp = TagExp.notlike(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, NK, "goo")
def test_greater_equal():
    meas = Measurement.new("fizz")
    exp = TagExp.greater_equal(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, GE, "goo")
예제 #51
0
def test_meta_or():
    meas0 = Measurement.new("fizz")
    meas1 = Measurement.new("buzz")
    assert (meas0 | meas1) == Measurement.new("/fizz|buzz/")
def test_less_equal():
    meas = Measurement.new("fizz")
    exp = TagExp.less_equal(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, LE, "goo")
예제 #53
0
def test_new():
    assert Measurement.new("fizz") == Fizz
def test_notlike():
    meas = Measurement.new("fizz")
    exp = TagExp.notlike(meas.buzz, "goo")
    assert exp == TagExp(meas.buzz, NK, "goo")
예제 #55
0
def test_tag_str():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    assert str(tag) == "buzz"
def test_meta_or():
    meas0 = Measurement.new("fizz")
    meas1 = Measurement.new("buzz")
    assert (meas0 | meas1) == Measurement.new("/fizz|buzz/")
예제 #57
0
def test_tag_eq():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    exp = tag == "foo"
    assert exp == TagExp("buzz", EQ, "foo")
def test_meta_measurement():
    meas = Measurement.new("fizz")
    assert meas == meas.measurement
예제 #59
0
def test_tag_lt():
    meas = Measurement.new("fizz")
    tag = Tag("buzz", meas)
    exp = tag < "foo"
    assert exp == TagExp("buzz", LT, "foo")
def test_new():
    assert Measurement.new("fizz") == Fizz