66from splitio .api import APIException
77from splitio .push .splitworker import SplitWorker
88from splitio .push .parser import SplitChangeUpdate
9+ from splitio .engine .telemetry import TelemetryStorageProducer
10+ from splitio .storage .inmemmory import InMemoryTelemetryStorage
911
1012change_number_received = None
1113
@@ -20,11 +22,14 @@ class SplitWorkerTests(object):
2022
2123 def test_on_error (self , mocker ):
2224 q = queue .Queue ()
25+ telemetry_storage = InMemoryTelemetryStorage ()
26+ telemetry_producer = TelemetryStorageProducer (telemetry_storage )
27+ telemetry_runtime_producer = telemetry_producer .get_telemetry_runtime_producer ()
2328
2429 def handler_sync (change_number ):
2530 raise APIException ('some' )
2631
27- split_worker = SplitWorker (handler_sync , q , mocker .Mock ())
32+ split_worker = SplitWorker (handler_sync , q , mocker .Mock (), telemetry_runtime_producer )
2833 split_worker .start ()
2934 assert split_worker .is_running ()
3035
@@ -41,7 +46,10 @@ def handler_sync(change_number):
4146
4247 def test_handler (self , mocker ):
4348 q = queue .Queue ()
44- split_worker = SplitWorker (handler_sync , q , mocker .Mock ())
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 )
4553
4654 global change_number_received
4755 assert not split_worker .is_running ()
@@ -90,7 +98,10 @@ def set_change_number(new_change_number):
9098
9199 def test_compression (self , mocker ):
92100 q = queue .Queue ()
93- split_worker = SplitWorker (handler_sync , q , mocker .Mock ())
101+ telemetry_storage = InMemoryTelemetryStorage ()
102+ telemetry_producer = TelemetryStorageProducer (telemetry_storage )
103+ telemetry_runtime_producer = telemetry_producer .get_telemetry_runtime_producer ()
104+ split_worker = SplitWorker (handler_sync , q , mocker .Mock (), telemetry_runtime_producer )
94105 global change_number_received
95106 split_worker .start ()
96107 def get_change_number ():
@@ -111,18 +122,21 @@ def remove(feature_flag):
111122 q .put (SplitChangeUpdate ('some' , 'SPLIT_UPDATE' , 123456790 , 2345 , 'eyJ0cmFmZmljVHlwZU5hbWUiOiJ1c2VyIiwiaWQiOiIzM2VhZmE1MC0xYTY1LTExZWQtOTBkZi1mYTMwZDk2OTA0NDUiLCJuYW1lIjoiYmlsYWxfc3BsaXQiLCJ0cmFmZmljQWxsb2NhdGlvbiI6MTAwLCJ0cmFmZmljQWxsb2NhdGlvblNlZWQiOi0xMzY0MTE5MjgyLCJzZWVkIjotNjA1OTM4ODQzLCJzdGF0dXMiOiJBQ1RJVkUiLCJraWxsZWQiOmZhbHNlLCJkZWZhdWx0VHJlYXRtZW50Ijoib2ZmIiwiY2hhbmdlTnVtYmVyIjoxNjg0MzQwOTA4NDc1LCJhbGdvIjoyLCJjb25maWd1cmF0aW9ucyI6e30sImNvbmRpdGlvbnMiOlt7ImNvbmRpdGlvblR5cGUiOiJST0xMT1VUIiwibWF0Y2hlckdyb3VwIjp7ImNvbWJpbmVyIjoiQU5EIiwibWF0Y2hlcnMiOlt7ImtleVNlbGVjdG9yIjp7InRyYWZmaWNUeXBlIjoidXNlciJ9LCJtYXRjaGVyVHlwZSI6IklOX1NFR01FTlQiLCJuZWdhdGUiOmZhbHNlLCJ1c2VyRGVmaW5lZFNlZ21lbnRNYXRjaGVyRGF0YSI6eyJzZWdtZW50TmFtZSI6ImJpbGFsX3NlZ21lbnQifX1dfSwicGFydGl0aW9ucyI6W3sidHJlYXRtZW50Ijoib24iLCJzaXplIjowfSx7InRyZWF0bWVudCI6Im9mZiIsInNpemUiOjEwMH1dLCJsYWJlbCI6ImluIHNlZ21lbnQgYmlsYWxfc2VnbWVudCJ9LHsiY29uZGl0aW9uVHlwZSI6IlJPTExPVVQiLCJtYXRjaGVyR3JvdXAiOnsiY29tYmluZXIiOiJBTkQiLCJtYXRjaGVycyI6W3sia2V5U2VsZWN0b3IiOnsidHJhZmZpY1R5cGUiOiJ1c2VyIn0sIm1hdGNoZXJUeXBlIjoiQUxMX0tFWVMiLCJuZWdhdGUiOmZhbHNlfV19LCJwYXJ0aXRpb25zIjpbeyJ0cmVhdG1lbnQiOiJvbiIsInNpemUiOjB9LHsidHJlYXRtZW50Ijoib2ZmIiwic2l6ZSI6MTAwfV0sImxhYmVsIjoiZGVmYXVsdCBydWxlIn1dfQ==' , 0 ))
112123 time .sleep (0.1 )
113124 assert self ._feature_flag .name == 'bilal_split'
125+ assert telemetry_storage ._counters ._update_from_sse == 1
114126
115127 # compression 2
116128 self ._feature_flag = None
117129 q .put (SplitChangeUpdate ('some' , 'SPLIT_UPDATE' , 123456790 , 2345 , 'eJzEUtFq20AQ/JUwz2c4WZZr3ZupTQh1FKjcQinGrKU95cjpZE6nh9To34ssJ3FNX0sfd3Zm53b2TgietDbF9vXIGdUMha5lDwFTQiGOmTQlchLRPJlEEZeTVJZ6oimWZTpP5WyWQMCNyoOxZPft0ZoA8TZ5aW1TUDCNg4qk/AueM5dQkyiez6IonS6mAu0IzWWSxovFLBZoA4WuhcLy8/bh+xoCL8bagaXJtixQsqbOhq1nCjW7AIVGawgUz+Qqzrr6wB4qmi9m00/JIk7TZCpAtmqgpgJF47SpOn9+UQt16s9YaS71z9NHOYQFha9Pm83Tty0EagrFM/t733RHqIFZH4wb7LDMVh+Ecc4Lv+ZsuQiNH8hXF3hLv39XXNCHbJ+v7x/X2eDmuKLA74sPihVr47jMuRpWfxy1Kwo0GLQjmv1xpBFD3+96gSP5cLVouM7QQaA1vxhK9uKmd853bEZS9jsBSwe2UDDu7mJxd2Mo/muQy81m/2X9I7+N8R/FcPmUd76zjH7X/w4AAP//90glTw==' , 2 ))
118130 time .sleep (0.1 )
119131 assert self ._feature_flag .name == 'bilal_split'
132+ assert telemetry_storage ._counters ._update_from_sse == 2
120133
121134 # compression 1
122135 self ._feature_flag = None
123136 q .put (SplitChangeUpdate ('some' , 'SPLIT_UPDATE' , 123456790 , 2345 , 'H4sIAAkVZWQC/8WST0+DQBDFv0qzZ0ig/BF6a2xjGismUk2MaZopzOKmy9Isy0EbvrtDwbY2Xo233Tdv5se85cCMBs5FtvrYYwIlsglratTMYiKns+chcAgc24UwsF0Xczt2cm5z8Jw8DmPH9wPyqr5zKyTITb2XwpA4TJ5KWWVgRKXYxHWcX/QUkVi264W+68bjaGyxupdCJ4i9KPI9UgyYpibI9Ha1eJnT/J2QsnNxkDVaLEcOjTQrjWBKVIasFefky95BFZg05Zb2mrhh5I9vgsiL44BAIIuKTeiQVYqLotHHLyLOoT1quRjub4fztQuLxj89LpePzytClGCyd9R3umr21ErOcitUh2PTZHY29HN2+JGixMxUujNfvMB3+u2pY1AXySad3z3Mk46msACDp8W7jhly4uUpFt3qD33vDAx0gLpXkx+P1GusbdcE24M2F4uaywwVEWvxSa1Oa13Vjvn2RXradm0xCVuUVBJqNCBGV0DrX4OcLpeb+/lreh3jH8Uw/JQj3UhkxPgCCurdEnADAAA=' , 1 ))
124137 time .sleep (0.1 )
125138 assert self ._feature_flag .name == 'bilal_split'
139+ assert telemetry_storage ._counters ._update_from_sse == 3
126140
127141 # should call delete split
128142 self ._feature_flag = None
@@ -134,7 +148,10 @@ def remove(feature_flag):
134148
135149 def test_edge_cases (self , mocker ):
136150 q = queue .Queue ()
137- split_worker = SplitWorker (handler_sync , q , mocker .Mock ())
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 )
138155 global change_number_received
139156 split_worker .start ()
140157
0 commit comments