MCPcopy
hub / github.com/redis/redis-py / test_multi_range_advanced

Function test_multi_range_advanced

tests/test_timeseries.py:606–729  ·  view source on GitHub ↗
(client)

Source from the content-addressed store, hash-verified

604@pytest.mark.redismod
605@skip_ifmodversion_lt("1.10.0", "timeseries")
606def test_multi_range_advanced(client):
607 client.ts().create(1, labels={"Test": "This", "team": "ny"})
608 client.ts().create(2, labels={"Test": "This", "Taste": "That", "team": "sf"})
609 for i in range(100):
610 client.ts().add(1, i, i % 7)
611 client.ts().add(2, i, i % 11)
612
613 # test with selected labels
614 res = client.ts().mrange(0, 200, filters=["Test=This"], select_labels=["team"])
615 if expects_resp2_shape(client):
616 assert {"team": "ny"} == res[0]["1"][0]
617 assert {"team": "sf"} == res[1]["2"][0]
618
619 # test with filterby
620 res = client.ts().mrange(
621 0,
622 200,
623 filters=["Test=This"],
624 filter_by_ts=[i for i in range(10, 20)],
625 filter_by_min_value=1,
626 filter_by_max_value=2,
627 )
628 assert [(15, 1.0), (16, 2.0)] == res[0]["1"][1]
629
630 # test groupby
631 res = client.ts().mrange(
632 0, 3, filters=["Test=This"], groupby="Test", reduce="sum"
633 )
634 assert [(0, 0.0), (1, 2.0), (2, 4.0), (3, 6.0)] == res[0]["Test=This"][1]
635 res = client.ts().mrange(
636 0, 3, filters=["Test=This"], groupby="Test", reduce="max"
637 )
638 assert [(0, 0.0), (1, 1.0), (2, 2.0), (3, 3.0)] == res[0]["Test=This"][1]
639 res = client.ts().mrange(
640 0, 3, filters=["Test=This"], groupby="team", reduce="min"
641 )
642 assert 2 == len(res)
643 assert [(0, 0.0), (1, 1.0), (2, 2.0), (3, 3.0)] == res[0]["team=ny"][1]
644 assert [(0, 0.0), (1, 1.0), (2, 2.0), (3, 3.0)] == res[1]["team=sf"][1]
645
646 # test align
647 res = client.ts().mrange(
648 0,
649 10,
650 filters=["team=ny"],
651 aggregation_type="count",
652 bucket_size_msec=10,
653 align="-",
654 )
655 assert [(0, 10.0), (10, 1.0)] == res[0]["1"][1]
656 res = client.ts().mrange(
657 0,
658 10,
659 filters=["team=ny"],
660 aggregation_type="count",
661 bucket_size_msec=10,
662 align=5,
663 )

Callers

nothing calls this directly

Calls 6

expects_resp2_shapeFunction · 0.85
expected_response_shapeFunction · 0.85
mrangeMethod · 0.80
createMethod · 0.45
tsMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected