77from splitio .push .splitworker import SplitWorker
88from splitio .push .parser import SplitChangeUpdate
99from splitio .engine .telemetry import TelemetryStorageProducer
10- from splitio .storage .inmemmory import InMemoryTelemetryStorage
11-
10+ from splitio .storage .inmemmory import InMemoryTelemetryStorage , InMemorySplitStorage , InMemorySegmentStorage
1211change_number_received = None
1312
1413
@@ -22,14 +21,10 @@ class SplitWorkerTests(object):
2221
2322 def test_on_error (self , mocker ):
2423 q = queue .Queue ()
25- telemetry_storage = InMemoryTelemetryStorage ()
26- telemetry_producer = TelemetryStorageProducer (telemetry_storage )
27- telemetry_runtime_producer = telemetry_producer .get_telemetry_runtime_producer ()
28-
2924 def handler_sync (change_number ):
3025 raise APIException ('some' )
3126
32- split_worker = SplitWorker (handler_sync , q , mocker .Mock (), telemetry_runtime_producer )
27+ split_worker = SplitWorker (handler_sync , mocker . Mock (), q , mocker .Mock (), mocker . Mock (), mocker . Mock () )
3328 split_worker .start ()
3429 assert split_worker .is_running ()
3530
@@ -46,10 +41,7 @@ def handler_sync(change_number):
4641
4742 def test_handler (self , mocker ):
4843 q = queue .Queue ()
49- telemetry_storage = InMemoryTelemetryStorage ()
50- telemetry_producer = TelemetryStorageProducer (telemetry_storage )
51- telemetry_runtime_producer = telemetry_producer .get_telemetry_runtime_producer ()
52- split_worker = SplitWorker (handler_sync , q , mocker .Mock (), telemetry_runtime_producer )
44+ split_worker = SplitWorker (handler_sync , mocker .Mock (), q , mocker .Mock (), mocker .Mock (), mocker .Mock ())
5345
5446 global change_number_received
5547 assert not split_worker .is_running ()
@@ -101,7 +93,7 @@ def test_compression(self, mocker):
10193 telemetry_storage = InMemoryTelemetryStorage ()
10294 telemetry_producer = TelemetryStorageProducer (telemetry_storage )
10395 telemetry_runtime_producer = telemetry_producer .get_telemetry_runtime_producer ()
104- split_worker = SplitWorker (handler_sync , q , mocker .Mock (), telemetry_runtime_producer )
96+ split_worker = SplitWorker (handler_sync , mocker . Mock (), q , mocker . Mock () , mocker .Mock (), telemetry_runtime_producer )
10597 global change_number_received
10698 split_worker .start ()
10799 def get_change_number ():
@@ -148,10 +140,7 @@ def remove(feature_flag):
148140
149141 def test_edge_cases (self , mocker ):
150142 q = queue .Queue ()
151- telemetry_storage = InMemoryTelemetryStorage ()
152- telemetry_producer = TelemetryStorageProducer (telemetry_storage )
153- telemetry_runtime_producer = telemetry_producer .get_telemetry_runtime_producer ()
154- split_worker = SplitWorker (handler_sync , q , mocker .Mock (), telemetry_runtime_producer )
143+ split_worker = SplitWorker (handler_sync , mocker .Mock (), q , mocker .Mock (), mocker .Mock (), mocker .Mock ())
155144 global change_number_received
156145 split_worker .start ()
157146
@@ -190,4 +179,28 @@ def put(feature_flag):
190179 change_number_received = 0
191180 q .put (SplitChangeUpdate ('some' , 'SPLIT_UPDATE' , 123456 , 2345 , None , 1 ))
192181 time .sleep (0.1 )
193- assert self ._feature_flag == None
182+ assert self ._feature_flag == None
183+
184+ def test_fetch_segment (self , mocker ):
185+ q = queue .Queue ()
186+ split_storage = InMemorySplitStorage ()
187+ segment_storage = InMemorySegmentStorage ()
188+
189+ self .segment_name = None
190+ def segment_handler_sync (segment_name , change_number ):
191+ self .segment_name = segment_name
192+ return
193+ split_worker = SplitWorker (handler_sync , segment_handler_sync , q , split_storage , segment_storage , mocker .Mock ())
194+ split_worker .start ()
195+
196+ def get_change_number ():
197+ return 2345
198+ split_worker ._feature_flag_storage .get_change_number = get_change_number
199+
200+ def check_instant_ff_update (event ):
201+ return True
202+ split_worker ._check_instant_ff_update = check_instant_ff_update
203+
204+ q .put (SplitChangeUpdate ('some' , 'SPLIT_UPDATE' , 1675095324253 , 2345 , 'eyJjaGFuZ2VOdW1iZXIiOiAxNjc1MDk1MzI0MjUzLCAidHJhZmZpY1R5cGVOYW1lIjogInVzZXIiLCAibmFtZSI6ICJiaWxhbF9zcGxpdCIsICJ0cmFmZmljQWxsb2NhdGlvbiI6IDEwMCwgInRyYWZmaWNBbGxvY2F0aW9uU2VlZCI6IC0xMzY0MTE5MjgyLCAic2VlZCI6IC02MDU5Mzg4NDMsICJzdGF0dXMiOiAiQUNUSVZFIiwgImtpbGxlZCI6IGZhbHNlLCAiZGVmYXVsdFRyZWF0bWVudCI6ICJvZmYiLCAiYWxnbyI6IDIsICJjb25kaXRpb25zIjogW3siY29uZGl0aW9uVHlwZSI6ICJST0xMT1VUIiwgIm1hdGNoZXJHcm91cCI6IHsiY29tYmluZXIiOiAiQU5EIiwgIm1hdGNoZXJzIjogW3sia2V5U2VsZWN0b3IiOiB7InRyYWZmaWNUeXBlIjogInVzZXIiLCAiYXR0cmlidXRlIjogbnVsbH0sICJtYXRjaGVyVHlwZSI6ICJJTl9TRUdNRU5UIiwgIm5lZ2F0ZSI6IGZhbHNlLCAidXNlckRlZmluZWRTZWdtZW50TWF0Y2hlckRhdGEiOiB7InNlZ21lbnROYW1lIjogImJpbGFsX3NlZ21lbnQifSwgIndoaXRlbGlzdE1hdGNoZXJEYXRhIjogbnVsbCwgInVuYXJ5TnVtZXJpY01hdGNoZXJEYXRhIjogbnVsbCwgImJldHdlZW5NYXRjaGVyRGF0YSI6IG51bGwsICJkZXBlbmRlbmN5TWF0Y2hlckRhdGEiOiBudWxsLCAiYm9vbGVhbk1hdGNoZXJEYXRhIjogbnVsbCwgInN0cmluZ01hdGNoZXJEYXRhIjogbnVsbH1dfSwgInBhcnRpdGlvbnMiOiBbeyJ0cmVhdG1lbnQiOiAib24iLCAic2l6ZSI6IDB9LCB7InRyZWF0bWVudCI6ICJvZmYiLCAic2l6ZSI6IDEwMH1dLCAibGFiZWwiOiAiaW4gc2VnbWVudCBiaWxhbF9zZWdtZW50In0sIHsiY29uZGl0aW9uVHlwZSI6ICJST0xMT1VUIiwgIm1hdGNoZXJHcm91cCI6IHsiY29tYmluZXIiOiAiQU5EIiwgIm1hdGNoZXJzIjogW3sia2V5U2VsZWN0b3IiOiB7InRyYWZmaWNUeXBlIjogInVzZXIiLCAiYXR0cmlidXRlIjogbnVsbH0sICJtYXRjaGVyVHlwZSI6ICJBTExfS0VZUyIsICJuZWdhdGUiOiBmYWxzZSwgInVzZXJEZWZpbmVkU2VnbWVudE1hdGNoZXJEYXRhIjogbnVsbCwgIndoaXRlbGlzdE1hdGNoZXJEYXRhIjogbnVsbCwgInVuYXJ5TnVtZXJpY01hdGNoZXJEYXRhIjogbnVsbCwgImJldHdlZW5NYXRjaGVyRGF0YSI6IG51bGwsICJkZXBlbmRlbmN5TWF0Y2hlckRhdGEiOiBudWxsLCAiYm9vbGVhbk1hdGNoZXJEYXRhIjogbnVsbCwgInN0cmluZ01hdGNoZXJEYXRhIjogbnVsbH1dfSwgInBhcnRpdGlvbnMiOiBbeyJ0cmVhdG1lbnQiOiAib24iLCAic2l6ZSI6IDUwfSwgeyJ0cmVhdG1lbnQiOiAib2ZmIiwgInNpemUiOiA1MH1dLCAibGFiZWwiOiAiZGVmYXVsdCBydWxlIn1dLCAiY29uZmlndXJhdGlvbnMiOiB7fX0=' , 0 ))
205+ time .sleep (0.1 )
206+ assert self .segment_name == "bilal_segment"
0 commit comments