Skip to content

Commit 58e7d4c

Browse files
committed
Fixed integrations tests
1 parent 1346d92 commit 58e7d4c

File tree

2 files changed

+30
-16
lines changed

2 files changed

+30
-16
lines changed

splitio/storage/redis.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,11 +195,23 @@ def get_splits_count(self):
195195
def get_all_splits(self):
196196
"""
197197
Return all the splits in cache.
198-
199-
:return: 0
200-
:rtype: int
198+
:return: List of all splits in cache.
199+
:rtype: list(splitio.models.splits.Split)
201200
"""
202-
return 0
201+
keys = self._redis.keys(self._get_key('*'))
202+
to_return = []
203+
try:
204+
raw_splits = self._redis.mget(keys)
205+
for raw in raw_splits:
206+
try:
207+
to_return.append(splits.from_raw(json.loads(raw)))
208+
except (ValueError, TypeError):
209+
_LOGGER.error('Could not parse split. Skipping')
210+
_LOGGER.debug("Raw split that failed parsing attempt: %s", raw)
211+
except RedisAdapterException:
212+
_LOGGER.error('Error fetching all splits from storage')
213+
_LOGGER.debug('Error: ', exc_info=True)
214+
return to_return
203215

204216
def kill_locally(self, split_name, default_treatment, change_number):
205217
"""

tests/integration/test_client_e2e.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from splitio.storage.inmemmory import InMemoryEventStorage, InMemoryImpressionStorage, \
1313
InMemorySegmentStorage, InMemorySplitStorage, InMemoryTelemetryStorage
1414
from splitio.storage.redis import RedisEventsStorage, RedisImpressionsStorage, \
15-
RedisSplitStorage, RedisSegmentStorage
15+
RedisSplitStorage, RedisSegmentStorage, RedisTelemetryStorage
1616
from splitio.storage.adapters.redis import build, RedisAdapter
1717
from splitio.models import splits, segments
1818
from splitio.engine.impressions.impressions import Manager as ImpressionsManager, ImpressionsMode
@@ -53,6 +53,7 @@ def setup_method(self):
5353
telemetry_producer = TelemetryStorageProducer(telemetry_storage)
5454
telemetry_consumer = TelemetryStorageConsumer(telemetry_storage)
5555
telemetry_runtime_producer = telemetry_producer.get_telemetry_runtime_producer()
56+
telemetry_evaluation_producer = telemetry_producer.get_telemetry_evaluation_producer()
5657

5758
storages = {
5859
'splits': split_storage,
@@ -61,7 +62,7 @@ def setup_method(self):
6162
'events': InMemoryEventStorage(5000, telemetry_runtime_producer),
6263
}
6364
impmanager = ImpressionsManager(StrategyDebugMode(), telemetry_runtime_producer) # no listener
64-
recorder = StandardRecorder(impmanager, storages['events'], storages['impressions'])
65+
recorder = StandardRecorder(impmanager, storages['events'], storages['impressions'], telemetry_evaluation_producer)
6566
self.factory = SplitFactory('some_api_key',
6667
storages,
6768
True,
@@ -313,6 +314,7 @@ def setup_method(self):
313314
telemetry_producer = TelemetryStorageProducer(telemetry_storage)
314315
telemetry_consumer = TelemetryStorageConsumer(telemetry_storage)
315316
telemetry_runtime_producer = telemetry_producer.get_telemetry_runtime_producer()
317+
telemetry_evaluation_producer = telemetry_producer.get_telemetry_evaluation_producer()
316318

317319
storages = {
318320
'splits': split_storage,
@@ -321,7 +323,7 @@ def setup_method(self):
321323
'events': InMemoryEventStorage(5000, telemetry_runtime_producer),
322324
}
323325
impmanager = ImpressionsManager(StrategyOptimizedMode(ImpressionsCounter()), telemetry_runtime_producer) # no listener
324-
recorder = StandardRecorder(impmanager, storages['events'], storages['impressions'])
326+
recorder = StandardRecorder(impmanager, storages['events'], storages['impressions'], telemetry_evaluation_producer)
325327
self.factory = SplitFactory('some_api_key',
326328
storages,
327329
True,
@@ -539,9 +541,9 @@ def setup_method(self):
539541
redis_client.sadd(segment_storage._get_key(data['name']), *data['added'])
540542
redis_client.set(segment_storage._get_till_key(data['name']), data['till'])
541543

542-
telemetry_storage = InMemoryTelemetryStorage()
543-
telemetry_producer = TelemetryStorageProducer(telemetry_storage)
544-
telemetry_consumer = TelemetryStorageConsumer(telemetry_storage)
544+
telemetry_redis_storage = RedisTelemetryStorage(redis_client, metadata)
545+
telemetry_producer = TelemetryStorageProducer(telemetry_redis_storage)
546+
telemetry_consumer = TelemetryStorageConsumer(telemetry_redis_storage)
545547
telemetry_runtime_producer = telemetry_producer.get_telemetry_runtime_producer()
546548

547549
storages = {
@@ -551,8 +553,8 @@ def setup_method(self):
551553
'events': RedisEventsStorage(redis_client, metadata),
552554
}
553555
impmanager = ImpressionsManager(StrategyDebugMode(), telemetry_runtime_producer) # no listener
554-
recorder = PipelinedRecorder(redis_client.pipeline, impmanager,
555-
storages['events'], storages['impressions'])
556+
recorder = PipelinedRecorder(redis_client.pipeline, impmanager, storages['events'],
557+
storages['impressions'], telemetry_redis_storage)
556558
self.factory = SplitFactory('some_api_key',
557559
storages,
558560
True,
@@ -827,10 +829,10 @@ def setup_method(self):
827829
redis_client.sadd(segment_storage._get_key(data['name']), *data['added'])
828830
redis_client.set(segment_storage._get_till_key(data['name']), data['till'])
829831

830-
telemetry_storage = InMemoryTelemetryStorage()
831-
telemetry_producer = TelemetryStorageProducer(telemetry_storage)
832+
telemetry_redis_storage = RedisTelemetryStorage(redis_client, metadata)
833+
telemetry_producer = TelemetryStorageProducer(telemetry_redis_storage)
834+
telemetry_consumer = TelemetryStorageConsumer(telemetry_redis_storage)
832835
telemetry_runtime_producer = telemetry_producer.get_telemetry_runtime_producer()
833-
telemetry_consumer = TelemetryStorageConsumer(telemetry_storage)
834836
telemetry_runtime_producer = telemetry_producer.get_telemetry_runtime_producer()
835837

836838
storages = {
@@ -841,7 +843,7 @@ def setup_method(self):
841843
}
842844
impmanager = ImpressionsManager(StrategyDebugMode(), telemetry_runtime_producer) # no listener
843845
recorder = PipelinedRecorder(redis_client.pipeline, impmanager,
844-
storages['events'], storages['impressions'])
846+
storages['events'], storages['impressions'], telemetry_redis_storage)
845847
self.factory = SplitFactory('some_api_key',
846848
storages,
847849
True,

0 commit comments

Comments
 (0)