|
3 | 3 | import threading |
4 | 4 | import unittest.mock as mock |
5 | 5 | import time |
| 6 | +import pytest |
6 | 7 |
|
7 | 8 | from splitio.api.auth import AuthAPI |
8 | 9 | from splitio.api import auth, client, APIException |
@@ -73,26 +74,23 @@ def test_start_streaming_false(self, mocker): |
73 | 74 | assert len(synchronizer.start_periodic_data_recording.mock_calls) == 1 |
74 | 75 |
|
75 | 76 | def test_telemetry(self, mocker): |
76 | | - httpclient = mocker.Mock(spec=client.HttpClient) |
77 | | - token = "eyJhbGciOiJIUzI1NiIsImtpZCI6IjVZOU05US45QnJtR0EiLCJ0eXAiOiJKV1QifQ.eyJ4LWFibHktY2FwYWJpbGl0eSI6IntcIk56TTJNREk1TXpjMF9NVGd5TlRnMU1UZ3dOZz09X3NlZ21lbnRzXCI6W1wic3Vic2NyaWJlXCJdLFwiTnpNMk1ESTVNemMwX01UZ3lOVGcxTVRnd05nPT1fc3BsaXRzXCI6W1wic3Vic2NyaWJlXCJdLFwiY29udHJvbF9wcmlcIjpbXCJzdWJzY3JpYmVcIixcImNoYW5uZWwtbWV0YWRhdGE6cHVibGlzaGVyc1wiXSxcImNvbnRyb2xfc2VjXCI6W1wic3Vic2NyaWJlXCIsXCJjaGFubmVsLW1ldGFkYXRhOnB1Ymxpc2hlcnNcIl19IiwieC1hYmx5LWNsaWVudElkIjoiY2xpZW50SWQiLCJleHAiOjE2MDIwODgxMjcsImlhdCI6MTYwMjA4NDUyN30.5_MjWonhs6yoFhw44hNJm3H7_YMjXpSW105DwjjppqE" |
78 | | - payload = '{{"pushEnabled": true, "token": "{token}"}}'.format(token=token) |
79 | | - cfg = DEFAULT_CONFIG.copy() |
80 | | - cfg.update({'IPAddressesEnabled': True, 'machineName': 'some_machine_name', 'machineIp': '123.123.123.123'}) |
81 | | - sdk_metadata = get_metadata(cfg) |
82 | | - httpclient.get.return_value = client.HttpResponse(200, payload) |
83 | | - telemetry_storage = InMemoryTelemetryStorage() |
84 | | - telemetry_producer = TelemetryStorageProducer(telemetry_storage) |
85 | | - telemetry_runtime_producer = telemetry_producer.get_telemetry_runtime_producer() |
86 | | - auth_api = auth.AuthAPI(httpclient, 'some_api_key', sdk_metadata, telemetry_runtime_producer) |
87 | 77 | splits_ready_event = threading.Event() |
88 | 78 | synchronizer = mocker.Mock(spec=Synchronizer) |
89 | 79 | telemetry_storage = InMemoryTelemetryStorage() |
90 | 80 | telemetry_producer = TelemetryStorageProducer(telemetry_storage) |
91 | 81 | telemetry_runtime_producer = telemetry_producer.get_telemetry_runtime_producer() |
92 | | - manager = Manager(splits_ready_event, synchronizer, auth_api, True, sdk_metadata, telemetry_runtime_producer) |
93 | | - manager.start() |
| 82 | + manager = Manager(splits_ready_event, synchronizer, mocker.Mock(), True, SdkMetadata('1.0', 'some', '1.2.3.4'), telemetry_runtime_producer) |
| 83 | + try: |
| 84 | + manager.start() |
| 85 | + except: |
| 86 | + pass |
| 87 | + splits_ready_event.wait(2) |
| 88 | + |
| 89 | + manager._queue.put(Status.PUSH_SUBSYSTEM_UP) |
| 90 | + manager._queue.put(Status.PUSH_NONRETRYABLE_ERROR) |
94 | 91 | time.sleep(1) |
95 | | - manager._push_status_handler_active = True |
| 92 | + assert(telemetry_storage._streaming_events._streaming_events[len(telemetry_storage._streaming_events._streaming_events)-2]._type == StreamingEventTypes.SYNC_MODE_UPDATE.value) |
| 93 | + assert(telemetry_storage._streaming_events._streaming_events[len(telemetry_storage._streaming_events._streaming_events)-2]._data == SSESyncMode.STREAMING.value) |
96 | 94 | assert(telemetry_storage._streaming_events._streaming_events[len(telemetry_storage._streaming_events._streaming_events)-1]._type == StreamingEventTypes.SYNC_MODE_UPDATE.value) |
97 | 95 | assert(telemetry_storage._streaming_events._streaming_events[len(telemetry_storage._streaming_events._streaming_events)-1]._data == SSESyncMode.POLLING.value) |
98 | 96 |
|
|
0 commit comments