Skip to content

Commit 73ebd58

Browse files
committed
RDBC-697 More refurbished legacy tests
1 parent fe13700 commit 73ebd58

File tree

4 files changed

+82
-90
lines changed

4 files changed

+82
-90
lines changed

ravendb/documents/operations/time_series.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,11 @@ def __init__(self, key: str, values: Dict[str, List[TimeSeriesRangeResult]]):
517517
@classmethod
518518
def from_json(cls, json_dict: Dict[str, Any]) -> TimeSeriesDetails:
519519
return cls(
520-
json_dict["Id"], {key: TimeSeriesRangeResult.from_json(value) for key, value in json_dict["Values"].items()}
520+
json_dict["Id"],
521+
{
522+
key: [TimeSeriesRangeResult.from_json(value) for value in values]
523+
for key, values in json_dict["Values"].items()
524+
},
521525
)
522526

523527

ravendb/documents/session/document_session.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1901,7 +1901,7 @@ def _serve_from_cache(
19011901
# we have all the range we need
19021902
# or that we have all the results we need in smaller range
19031903

1904-
return self.chop_relevant_range(ranges[to_range_index], from_date, to_date, start, page_size)
1904+
return self._chop_relevant_range(ranges[to_range_index], from_date, to_date, start, page_size)
19051905

19061906
from_range_index = to_range_index
19071907
continue
@@ -2060,22 +2060,23 @@ def _merge_ranges_with_results(
20602060

20612061
@staticmethod
20622062
def _chop_relevant_range(
2063-
self,
2064-
range: TimeSeriesRangeResult,
2063+
ts_range: TimeSeriesRangeResult,
20652064
from_date: datetime.datetime,
20662065
to_date: datetime.datetime,
20672066
start: int,
20682067
page_size: int,
2069-
):
2070-
if range.entries is None:
2068+
) -> List[TimeSeriesEntry]:
2069+
if ts_range.entries is None:
20712070
return []
20722071

2073-
result = []
2074-
for value in range.entries:
2072+
results = []
2073+
for value in ts_range.entries:
20752074
if value.timestamp > to_date:
20762075
break
2076+
20772077
if value.timestamp < from_date:
20782078
continue
2079+
20792080
start -= 1
20802081
if start + 1 > 0:
20812082
continue
@@ -2084,9 +2085,9 @@ def _chop_relevant_range(
20842085
if page_size + 1 <= 0:
20852086
break
20862087

2087-
result.append(value)
2088+
results.append(value)
20882089

2089-
return result
2090+
return results
20902091

20912092
def _get_from_cache(
20922093
self,
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
from ravendb.tests.test_base import TestBase, User
2+
from datetime import datetime, timedelta
3+
4+
5+
class TestTimeSeries(TestBase):
6+
def setUp(self):
7+
super().setUp()
8+
9+
with self.store.open_session() as session:
10+
session.store(User("users/1-A", "Idan"))
11+
session.save_changes()
12+
13+
def tearDown(self):
14+
super().tearDown()
15+
16+
def test_time_series_append(self):
17+
base = datetime.now()
18+
with self.store.open_session() as session:
19+
tsf = session.time_series_for("users/1-A", "HeartRate")
20+
tsf.append_single(base, 70, "foo/bar")
21+
tsf.append_single(base - timedelta(hours=3), 86, "foo/bazz")
22+
session.save_changes()
23+
24+
time_series = tsf.get()
25+
self.assertEqual(2, len(time_series))
26+
self.assertEqual(86, time_series[0].value)
27+
self.assertEqual(70, time_series[1].value)
28+
29+
def test_time_series_removal(self):
30+
base = datetime.now()
31+
with self.store.open_session() as session:
32+
tsf = session.time_series_for("users/1-A", "HeartRate")
33+
tsf.append_single(base, 70, "foo/bar")
34+
session.save_changes()
35+
36+
time_series = tsf.get()
37+
self.assertEqual(1, len(time_series))
38+
39+
with self.store.open_session() as session:
40+
tsf = session.time_series_for("users/1-A", "HeartRate")
41+
tsf.delete(base, datetime.max)
42+
session.save_changes()
43+
44+
time_series = tsf.get()
45+
self.assertIsNone(time_series)
46+
47+
def test_time_series_cache(self):
48+
base = datetime.now()
49+
with self.store.open_session() as session:
50+
tsf = session.time_series_for("users/1-A", "HeartRate")
51+
tsf.append_single(base + timedelta(minutes=5), 70, "foo/bar")
52+
tsf.append_single(base + timedelta(hours=3), 71, "foo/barz")
53+
tsf.append_single(base + timedelta(days=5), 72, "foo/barzz")
54+
55+
session.save_changes()
56+
57+
with self.store.open_session() as session:
58+
tsf = session.time_series_for("users/1-A", "HeartRate")
59+
tsf.get(base, base + timedelta(hours=1))
60+
tsf.get(base + timedelta(hours=2), base + timedelta(days=3))
61+
tsf.get(base + timedelta(days=4), base + timedelta(days=6))
62+
tsf.get(base + timedelta(days=3), base + timedelta(days=5))
63+
64+
self.assertEqual(session.advanced.number_of_requests, 4)
65+
66+
tsf.get(base + timedelta(days=2), base + timedelta(days=6))
67+
self.assertEqual(session.advanced.number_of_requests, 4)

ravendb/tests/session_tests/test_timeseries.py

Lines changed: 0 additions & 80 deletions
This file was deleted.

0 commit comments

Comments
 (0)