(client)
| 604 | @pytest.mark.redismod |
| 605 | @skip_ifmodversion_lt("1.10.0", "timeseries") |
| 606 | def 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 | ) |
nothing calls this directly
no test coverage detected