diff --git a/splitio/engine/telemetry.py b/splitio/engine/telemetry.py index f2ecf6f8..e1802131 100644 --- a/splitio/engine/telemetry.py +++ b/splitio/engine/telemetry.py @@ -48,6 +48,10 @@ def record_ready_time(self, ready_time): """Record ready time.""" self._telemetry_storage.record_ready_time(ready_time) + def record_flag_sets(self, flag_sets): + """Record flag sets.""" + self._telemetry_storage.record_flag_sets(flag_sets) + def record_bur_time_out(self): """Record block until ready timeout.""" self._telemetry_storage.record_bur_time_out() diff --git a/tests/engine/test_telemetry.py b/tests/engine/test_telemetry.py index 78466e87..79bcd744 100644 --- a/tests/engine/test_telemetry.py +++ b/tests/engine/test_telemetry.py @@ -20,15 +20,42 @@ def test_instances(self): assert(telemetry_producer._telemetry_runtime_producer == telemetry_producer.get_telemetry_runtime_producer()) def test_record_config(self, mocker): - telemetry_storage = mocker.Mock() + telemetry_storage = InMemoryTelemetryStorage() telemetry_init_producer = TelemetryInitProducer(telemetry_storage) - - def record_config(*args, **kwargs): - self.passed_config = args[0] - - telemetry_storage.record_config.side_effect = record_config - telemetry_init_producer.record_config({'bT':0, 'nR':0, 'uC': 0}, {}) - assert(self.passed_config == {'bT':0, 'nR':0, 'uC': 0}) + config = {'operationMode': 'standalone', + 'streamingEnabled': True, + 'impressionsQueueSize': 100, + 'eventsQueueSize': 200, + 'impressionsMode': 'DEBUG', + 'impressionListener': None, + 'featuresRefreshRate': 30, + 'segmentsRefreshRate': 30, + 'impressionsRefreshRate': 60, + 'eventsPushRate': 60, + 'metricsRefreshRate': 10, + 'storageType': None + } + telemetry_init_producer.record_config(config, {}) + telemetry_init_producer.record_active_and_redundant_factories(1, 0) + telemetry_init_producer.record_flag_sets(2) + + assert(telemetry_storage._tel_config.get_stats() == {'oM': 0, + 'sT': telemetry_storage._tel_config._get_storage_type(config['operationMode'], config['storageType']), + 'sE': config['streamingEnabled'], + 'rR': {'sp': 30, 'se': 30, 'im': 60, 'ev': 60, 'te': 10}, + 'uO': {'s': False, 'e': False, 'a': False, 'st': False, 't': False}, + 'iQ': config['impressionsQueueSize'], + 'eQ': config['eventsQueueSize'], + 'iM': telemetry_storage._tel_config._get_impressions_mode(config['impressionsMode']), + 'iL': True if config['impressionListener'] is not None else False, + 'hp': telemetry_storage._tel_config._check_if_proxy_detected(), + 'bT': 0, + 'tR': 0, + 'nR': 0, + 'aF': 1, + 'rF': 0, + 'fS': 2} + ) def test_record_ready_time(self, mocker): telemetry_storage = mocker.Mock()