Skip to content

Commit 2f7f38c

Browse files
committed
added test for bucket method
1 parent 934c061 commit 2f7f38c

File tree

2 files changed

+37
-13
lines changed

2 files changed

+37
-13
lines changed

splitio/models/telemetry.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ def __init__(self):
113113
def _reset_all(self):
114114
"""Reset variables"""
115115
with self._lock:
116-
self._treatment = [0] * 23
117-
self._treatments = [0] * 23
118-
self._treatment_with_config = [0] * 23
119-
self._treatments_with_config = [0] * 23
120-
self._track = [0] * 23
116+
self._treatment = [0] * MAX_LATENCY_BUCKET_COUNT
117+
self._treatments = [0] * MAX_LATENCY_BUCKET_COUNT
118+
self._treatment_with_config = [0] * MAX_LATENCY_BUCKET_COUNT
119+
self._treatments_with_config = [0] * MAX_LATENCY_BUCKET_COUNT
120+
self._track = [0] * MAX_LATENCY_BUCKET_COUNT
121121

122122
def add_latency(self, method, latency):
123123
"""
@@ -171,13 +171,13 @@ def __init__(self):
171171
def _reset_all(self):
172172
"""Reset variables"""
173173
with self._lock:
174-
self._split = [0] * 23
175-
self._segment = [0] * 23
176-
self._impression = [0] * 23
177-
self._impression_count = [0] * 23
178-
self._event = [0] * 23
179-
self._telemetry = [0] * 23
180-
self._token = [0] * 23
174+
self._split = [0] * MAX_LATENCY_BUCKET_COUNT
175+
self._segment = [0] * MAX_LATENCY_BUCKET_COUNT
176+
self._impression = [0] * MAX_LATENCY_BUCKET_COUNT
177+
self._impression_count = [0] * MAX_LATENCY_BUCKET_COUNT
178+
self._event = [0] * MAX_LATENCY_BUCKET_COUNT
179+
self._telemetry = [0] * MAX_LATENCY_BUCKET_COUNT
180+
self._token = [0] * MAX_LATENCY_BUCKET_COUNT
181181

182182
def add_latency(self, resource, latency):
183183
"""

tests/models/test_telemetry_model.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,37 @@
44

55
from splitio.models.telemetry import StorageType, OperationMode, MethodLatencies, MethodExceptions, \
66
HTTPLatencies, HTTPErrors, LastSynchronization, TelemetryCounters, TelemetryConfig, \
7-
StreamingEvent, StreamingEvents
7+
StreamingEvent, StreamingEvents, get_latency_bucket_index
88

99
import splitio.models.telemetry as ModelTelemetry
1010

1111
class TelemetryModelTests(object):
1212
"""Telemetry model test cases."""
1313

14+
def test_latency_bucket_index(self):
15+
for i in range(50000):
16+
latency = random.randint(10, 9987885)
17+
old_bucket = 0
18+
result_bucket = 0
19+
counter = -1
20+
for j in ModelTelemetry.BUCKETS:
21+
counter = counter + 1
22+
if old_bucket == 0:
23+
if latency < j:
24+
old_bucket = 0
25+
break
26+
old_bucket = j
27+
continue
28+
if counter == ModelTelemetry.MAX_LATENCY_BUCKET_COUNT - 1:
29+
result_bucket = 22
30+
break
31+
if latency > old_bucket and latency <= j:
32+
result_bucket = counter
33+
break
34+
old_bucket = j
35+
print(latency, old_bucket, j)
36+
assert(result_bucket == ModelTelemetry.get_latency_bucket_index(latency))
37+
1438
def test_storage_type_and_operation_mode(self, mocker):
1539
assert(StorageType.LOCALHOST == 'localhost')
1640
assert(StorageType.MEMEORY == 'memory')

0 commit comments

Comments
 (0)