From 587cbe1396435d56c8a2e6125001d2c4ffa02731 Mon Sep 17 00:00:00 2001 From: Bilal Al-Shahwany Date: Thu, 24 Aug 2023 09:47:56 -0700 Subject: [PATCH 1/2] updated engine.telemetry class --- splitio/engine/telemetry.py | 4 ++++ tests/engine/test_telemetry.py | 43 +++++++++++++++++++++++++++------- 2 files changed, 39 insertions(+), 8 deletions(-) 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..57c60eae 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() From 89788f5d43cc23620d53c1aa4a47d1543a1d6db4 Mon Sep 17 00:00:00 2001 From: Bilal Al-Shahwany <41021307+chillaq@users.noreply.github.com> Date: Mon, 28 Aug 2023 08:34:23 -0700 Subject: [PATCH 2/2] Update tests/engine/test_telemetry.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gastón Thea --- tests/engine/test_telemetry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/engine/test_telemetry.py b/tests/engine/test_telemetry.py index 57c60eae..79bcd744 100644 --- a/tests/engine/test_telemetry.py +++ b/tests/engine/test_telemetry.py @@ -26,7 +26,7 @@ def test_record_config(self, mocker): 'streamingEnabled': True, 'impressionsQueueSize': 100, 'eventsQueueSize': 200, - 'impressionsMode': 'DEBUG','' + 'impressionsMode': 'DEBUG', 'impressionListener': None, 'featuresRefreshRate': 30, 'segmentsRefreshRate': 30,