|
1 | 1 | import datetime |
2 | 2 |
|
3 | | -from ravenpackapi.util import time_intervals, SPLIT_YEARLY, SPLIT_MONTHLY |
| 3 | +import pytest |
| 4 | + |
| 5 | +from ravenpackapi.util import time_intervals, SPLIT_YEARLY, SPLIT_MONTHLY, SPLIT_WEEKLY, SPLIT_DAILY |
4 | 6 |
|
5 | 7 |
|
6 | 8 | class TestTimeRanges(object): |
@@ -66,12 +68,41 @@ def test_minutes_years(self): |
66 | 68 | ('2016-01-01 00:00', '2016-01-10 11:30'), |
67 | 69 | ] |
68 | 70 |
|
69 | | - def test_very_short_interval(self): |
| 71 | + def test_weekly(self): |
| 72 | + start = '2017-12-20 15:00' |
| 73 | + end = '2018-01-08 11:30' |
| 74 | + intervals = [tuple(map(lambda d: d.strftime("%Y-%m-%d %H:%M"), rng)) |
| 75 | + for rng in time_intervals(start, end, |
| 76 | + split=SPLIT_WEEKLY)] |
| 77 | + assert intervals == [ |
| 78 | + ('2017-12-20 15:00', '2017-12-25 00:00'), |
| 79 | + ('2017-12-25 00:00', '2018-01-01 00:00'), |
| 80 | + ('2018-01-01 00:00', '2018-01-08 00:00'), |
| 81 | + ('2018-01-08 00:00', '2018-01-08 11:30'), |
| 82 | + ] |
| 83 | + |
| 84 | + def test_daily(self): |
| 85 | + start = '2017-12-29 15:00' |
| 86 | + end = '2018-01-02 11:30' |
| 87 | + intervals = [tuple(map(lambda d: d.strftime("%Y-%m-%d %H:%M"), rng)) |
| 88 | + for rng in time_intervals(start, end, |
| 89 | + split=SPLIT_DAILY)] |
| 90 | + assert intervals == [ |
| 91 | + ('2017-12-29 15:00', '2017-12-30 00:00'), |
| 92 | + ('2017-12-30 00:00', '2017-12-31 00:00'), |
| 93 | + ('2017-12-31 00:00', '2018-01-01 00:00'), |
| 94 | + ('2018-01-01 00:00', '2018-01-02 00:00'), |
| 95 | + ('2018-01-02 00:00', '2018-01-02 11:30'), |
| 96 | + ] |
| 97 | + |
| 98 | + @pytest.mark.parametrize("split", [SPLIT_MONTHLY, SPLIT_YEARLY, |
| 99 | + SPLIT_WEEKLY, SPLIT_DAILY]) |
| 100 | + def test_very_short_interval(self, split): |
70 | 101 | start = '2004-02-29 15:00' |
71 | 102 | end = '2004-02-29 16:00' |
72 | 103 | intervals = [tuple(map(lambda d: d.strftime("%Y-%m-%d %H:%M"), rng)) |
73 | 104 | for rng in time_intervals(start, end, |
74 | | - split=SPLIT_YEARLY)] |
| 105 | + split=split)] |
75 | 106 | assert intervals == [ |
76 | 107 | (start, end), |
77 | 108 | ] |
0 commit comments