11"""Telemetry Worker tests."""
22import unittest .mock as mock
33import json
4- from splitio .sync .telemetry import TelemetrySynchronizer , TelemetrySubmitter
4+ from splitio .sync .telemetry import TelemetrySynchronizer , InMemoryTelemetrySubmitter
55from splitio .engine .telemetry import TelemetryEvaluationConsumer , TelemetryInitConsumer , TelemetryRuntimeConsumer , TelemetryStorageConsumer
66from splitio .storage .inmemmory import InMemoryTelemetryStorage , InMemorySegmentStorage , InMemorySplitStorage
77from splitio .models .splits import Split , Status
88from splitio .models .segments import Segment
99from splitio .models .telemetry import StreamingEvents
10+ from splitio .api .telemetry import TelemetryAPI
1011
1112class TelemetrySynchronizerTests (object ):
1213 """Telemetry synchronizer test cases."""
1314
14- @mock .patch ('splitio.sync.telemetry.TelemetrySubmitter .synchronize_config' )
15+ @mock .patch ('splitio.sync.telemetry.InMemoryTelemetrySubmitter .synchronize_config' )
1516 def test_synchronize_config (self , mocker ):
16- telemetry_synchronizer = TelemetrySynchronizer (mocker .Mock (), mocker .Mock (), mocker .Mock (), mocker .Mock ())
17+ telemetry_synchronizer = TelemetrySynchronizer (InMemoryTelemetrySubmitter ( mocker .Mock (), mocker .Mock (), mocker .Mock (), mocker .Mock () ))
1718 telemetry_synchronizer .synchronize_config ()
1819 assert (mocker .called )
1920
20- @mock .patch ('splitio.sync.telemetry.TelemetrySubmitter .synchronize_stats' )
21+ @mock .patch ('splitio.sync.telemetry.InMemoryTelemetrySubmitter .synchronize_stats' )
2122 def test_synchronize_stats (self , mocker ):
22- telemetry_synchronizer = TelemetrySynchronizer (mocker .Mock (), mocker .Mock (), mocker .Mock (), mocker .Mock ())
23+ telemetry_synchronizer = TelemetrySynchronizer (InMemoryTelemetrySubmitter ( mocker .Mock (), mocker .Mock (), mocker .Mock (), mocker .Mock () ))
2324 telemetry_synchronizer .synchronize_stats ()
2425 assert (mocker .called )
2526
2627class TelemetrySubmitterTests (object ):
2728 """Telemetry submitter test cases."""
2829
2930 def test_synchronize_telemetry (self , mocker ):
30- api = mocker .Mock ()
31+ api = mocker .Mock (spec = TelemetryAPI )
3132 telemetry_storage = InMemoryTelemetryStorage ()
3233 telemetry_consumer = TelemetryStorageConsumer (telemetry_storage )
3334 split_storage = InMemorySplitStorage ()
3435 split_storage .put (Split ('split1' , 1234 , 1 , False , 'user' , Status .ACTIVE , 123 ))
3536 segment_storage = InMemorySegmentStorage ()
3637 segment_storage .put (Segment ('segment1' , [], 123 ))
37- telemetry_submitter = TelemetrySubmitter (telemetry_consumer , split_storage , segment_storage , api )
38+ telemetry_submitter = InMemoryTelemetrySubmitter (telemetry_consumer , split_storage , segment_storage , api )
3839
3940 telemetry_storage ._counters ._impressions_queued = 100
4041 telemetry_storage ._counters ._impressions_deduped = 30
@@ -100,12 +101,13 @@ def test_synchronize_telemetry(self, mocker):
100101 'timeUntilReady' : 1
101102 }, {}
102103 )
104+ self .formatted_config = ""
103105 def record_init (* args , ** kwargs ):
104106 self .formatted_config = args [0 ]
105107
106108 api .record_init .side_effect = record_init
107109 telemetry_submitter .synchronize_config ()
108- assert (self .formatted_config == telemetry_submitter ._telemetry_init_consumer .get_config_stats_to_json ())
110+ assert (self .formatted_config == telemetry_submitter ._telemetry_init_consumer .get_config_stats ())
109111
110112 def record_stats (* args , ** kwargs ):
111113 self .formatted_stats = args [0 ]
@@ -130,5 +132,6 @@ def record_stats(*args, **kwargs):
130132 "mL" : {"t" : [1 ] + [0 ] * 22 , "ts" : [0 ] * 23 , "tc" : [0 ] * 23 , "tcs" : [0 ] * 23 , "tr" : [0 ] * 23 },
131133 "spC" : 1 ,
132134 "seC" : 1 ,
133- "skC" : 0
135+ "skC" : 0 ,
136+ "t" : ['tag1' ]
134137 })
0 commit comments