17
17
InMemoryImpressionStorageAsync , InMemorySegmentStorageAsync , InMemoryTelemetryStorageAsync , InMemoryEventStorageAsync
18
18
from splitio .models .splits import Split , Status , from_raw
19
19
from splitio .engine .impressions .impressions import Manager as ImpressionManager
20
+ from splitio .engine .impressions .manager import Counter as ImpressionsCounter
21
+ from splitio .engine .impressions .unique_keys_tracker import UniqueKeysTracker , UniqueKeysTrackerAsync
20
22
from splitio .engine .telemetry import TelemetryStorageConsumer , TelemetryStorageProducer , TelemetryStorageProducerAsync
21
23
from splitio .engine .evaluator import Evaluator
22
24
from splitio .recorder .recorder import StandardRecorder , StandardRecorderAsync
@@ -44,7 +46,9 @@ def test_get_treatment(self, mocker):
44
46
mocker .patch ('splitio.client.client.get_latency_bucket_index' , new = lambda x : 5 )
45
47
46
48
impmanager = ImpressionManager (StrategyDebugMode (), StrategyNoneMode (), telemetry_runtime_producer )
47
- recorder = StandardRecorder (impmanager , event_storage , impression_storage , telemetry_producer .get_telemetry_evaluation_producer (), telemetry_producer .get_telemetry_runtime_producer ())
49
+ recorder = StandardRecorder (impmanager , event_storage , impression_storage , telemetry_producer .get_telemetry_evaluation_producer (), telemetry_producer .get_telemetry_runtime_producer (),
50
+ unique_keys_tracker = UniqueKeysTracker (),
51
+ imp_counter = ImpressionsCounter ())
48
52
class TelemetrySubmitterMock ():
49
53
def synchronize_config (* _ ):
50
54
pass
@@ -61,7 +65,9 @@ def synchronize_config(*_):
61
65
telemetry_producer .get_telemetry_init_producer (),
62
66
TelemetrySubmitterMock (),
63
67
)
64
-
68
+ ready_property = mocker .PropertyMock ()
69
+ ready_property .return_value = True
70
+ type(factory ).ready = ready_property
65
71
factory .block_until_ready (5 )
66
72
67
73
split_storage .update ([from_raw (splits_json ['splitChange1_1' ]['splits' ][0 ])], [], - 1 )
@@ -74,7 +80,7 @@ def synchronize_config(*_):
74
80
'label' : 'some_label' ,
75
81
'change_number' : 123
76
82
},
77
- 'track ' : True
83
+ 'impressions_disabled ' : False
78
84
}
79
85
_logger = mocker .Mock ()
80
86
assert client .get_treatment ('some_key' , 'SPLIT_2' ) == 'on'
@@ -85,6 +91,7 @@ def synchronize_config(*_):
85
91
ready_property = mocker .PropertyMock ()
86
92
ready_property .return_value = False
87
93
type(factory ).ready = ready_property
94
+ # pytest.set_trace()
88
95
assert client .get_treatment ('some_key' , 'SPLIT_2' , {'some_attribute' : 1 }) == 'control'
89
96
assert impression_storage .pop_many (100 ) == [Impression ('some_key' , 'SPLIT_2' , 'control' , Label .NOT_READY , None , None , 1000 )]
90
97
@@ -143,7 +150,7 @@ def synchronize_config(*_):
143
150
'label' : 'some_label' ,
144
151
'change_number' : 123
145
152
},
146
- 'track ' : True
153
+ 'impressions_disabled ' : False
147
154
}
148
155
_logger = mocker .Mock ()
149
156
client ._send_impression_to_listener = mocker .Mock ()
@@ -218,7 +225,7 @@ def synchronize_config(*_):
218
225
'label' : 'some_label' ,
219
226
'change_number' : 123
220
227
},
221
- 'track ' : True
228
+ 'impressions_disabled ' : False
222
229
}
223
230
client ._evaluator .eval_many_with_context .return_value = {
224
231
'SPLIT_2' : evaluation ,
@@ -296,7 +303,7 @@ def synchronize_config(*_):
296
303
'label' : 'some_label' ,
297
304
'change_number' : 123
298
305
},
299
- 'track ' : True
306
+ 'impressions_disabled ' : False
300
307
}
301
308
client ._evaluator .eval_many_with_context .return_value = {
302
309
'SPLIT_2' : evaluation ,
@@ -373,7 +380,7 @@ def synchronize_config(*_):
373
380
'label' : 'some_label' ,
374
381
'change_number' : 123
375
382
},
376
- 'track ' : True
383
+ 'impressions_disabled ' : False
377
384
}
378
385
client ._evaluator .eval_many_with_context .return_value = {
379
386
'SPLIT_2' : evaluation ,
@@ -449,7 +456,7 @@ def synchronize_config(*_):
449
456
'label' : 'some_label' ,
450
457
'change_number' : 123
451
458
},
452
- 'track ' : True
459
+ 'impressions_disabled ' : False
453
460
}
454
461
client ._evaluator .eval_many_with_context .return_value = {
455
462
'SPLIT_1' : evaluation ,
@@ -530,7 +537,7 @@ def synchronize_config(*_):
530
537
'label' : 'some_label' ,
531
538
'change_number' : 123
532
539
},
533
- 'track ' : True
540
+ 'impressions_disabled ' : False
534
541
}
535
542
client ._evaluator .eval_many_with_context .return_value = {
536
543
'SPLIT_1' : evaluation ,
@@ -608,7 +615,7 @@ def synchronize_config(*_):
608
615
'label' : 'some_label' ,
609
616
'change_number' : 123
610
617
},
611
- 'track ' : True
618
+ 'impressions_disabled ' : False
612
619
}
613
620
client ._evaluator .eval_many_with_context .return_value = {
614
621
'SPLIT_1' : evaluation ,
@@ -1270,7 +1277,7 @@ async def synchronize_config(*_):
1270
1277
'label' : 'some_label' ,
1271
1278
'change_number' : 123
1272
1279
},
1273
- 'track ' : True
1280
+ 'impressions_disabled ' : False
1274
1281
}
1275
1282
_logger = mocker .Mock ()
1276
1283
assert await client .get_treatment ('some_key' , 'SPLIT_2' ) == 'on'
@@ -1340,7 +1347,7 @@ async def synchronize_config(*_):
1340
1347
'label' : 'some_label' ,
1341
1348
'change_number' : 123
1342
1349
},
1343
- 'track ' : True
1350
+ 'impressions_disabled ' : False
1344
1351
}
1345
1352
_logger = mocker .Mock ()
1346
1353
client ._send_impression_to_listener = mocker .Mock ()
@@ -1415,7 +1422,7 @@ async def synchronize_config(*_):
1415
1422
'label' : 'some_label' ,
1416
1423
'change_number' : 123
1417
1424
},
1418
- 'track ' : True
1425
+ 'impressions_disabled ' : False
1419
1426
}
1420
1427
client ._evaluator .eval_many_with_context .return_value = {
1421
1428
'SPLIT_2' : evaluation ,
@@ -1493,7 +1500,7 @@ async def synchronize_config(*_):
1493
1500
'label' : 'some_label' ,
1494
1501
'change_number' : 123
1495
1502
},
1496
- 'track ' : True
1503
+ 'impressions_disabled ' : False
1497
1504
}
1498
1505
client ._evaluator .eval_many_with_context .return_value = {
1499
1506
'SPLIT_2' : evaluation ,
@@ -1571,7 +1578,7 @@ async def synchronize_config(*_):
1571
1578
'label' : 'some_label' ,
1572
1579
'change_number' : 123
1573
1580
},
1574
- 'track ' : True
1581
+ 'impressions_disabled ' : False
1575
1582
}
1576
1583
client ._evaluator .eval_many_with_context .return_value = {
1577
1584
'SPLIT_2' : evaluation ,
@@ -1648,7 +1655,7 @@ async def synchronize_config(*_):
1648
1655
'label' : 'some_label' ,
1649
1656
'change_number' : 123
1650
1657
},
1651
- 'track ' : True
1658
+ 'impressions_disabled ' : False
1652
1659
}
1653
1660
client ._evaluator .eval_many_with_context .return_value = {
1654
1661
'SPLIT_1' : evaluation ,
@@ -1730,7 +1737,7 @@ async def synchronize_config(*_):
1730
1737
'label' : 'some_label' ,
1731
1738
'change_number' : 123
1732
1739
},
1733
- 'track ' : True
1740
+ 'impressions_disabled ' : False
1734
1741
}
1735
1742
client ._evaluator .eval_many_with_context .return_value = {
1736
1743
'SPLIT_1' : evaluation ,
@@ -1812,7 +1819,7 @@ async def synchronize_config(*_):
1812
1819
'label' : 'some_label' ,
1813
1820
'change_number' : 123
1814
1821
},
1815
- 'track ' : True
1822
+ 'impressions_disabled ' : False
1816
1823
}
1817
1824
client ._evaluator .eval_many_with_context .return_value = {
1818
1825
'SPLIT_1' : evaluation ,
0 commit comments