Skip to content

Commit 6931e06

Browse files
committed
Fixed tests
1 parent 4eaaf84 commit 6931e06

File tree

7 files changed

+46
-46
lines changed

7 files changed

+46
-46
lines changed

tests/client/test_client.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ def test_get_treatment(self, mocker):
5353
mocker.Mock(),
5454
mocker.Mock(),
5555
telemetry_producer,
56-
telemetry_consumer.get_telemetry_init_consumer(),
57-
mocker.Mock()
56+
telemetry_producer.get_telemetry_init_producer(),
57+
mocker.Mock(),
5858
)
5959

6060
client = Client(factory, recorder, True)
@@ -122,7 +122,7 @@ def test_get_treatment_with_config(self, mocker):
122122
mocker.Mock(),
123123
mocker.Mock(),
124124
telemetry_producer,
125-
telemetry_consumer.get_telemetry_init_consumer(),
125+
telemetry_producer.get_telemetry_init_producer(),
126126
mocker.Mock()
127127
)
128128

@@ -199,7 +199,7 @@ def test_get_treatments(self, mocker):
199199
mocker.Mock(),
200200
mocker.Mock(),
201201
telemetry_producer,
202-
telemetry_consumer.get_telemetry_init_consumer(),
202+
telemetry_producer.get_telemetry_init_producer(),
203203
mocker.Mock()
204204
)
205205

@@ -272,7 +272,7 @@ def test_get_treatments_with_config(self, mocker):
272272
mocker.Mock(),
273273
mocker.Mock(),
274274
telemetry_producer,
275-
telemetry_consumer.get_telemetry_init_consumer(),
275+
telemetry_producer.get_telemetry_init_producer(),
276276
mocker.Mock()
277277
)
278278

@@ -349,7 +349,7 @@ def test_destroy(self, mocker):
349349
mocker.Mock(),
350350
mocker.Mock(),
351351
telemetry_producer,
352-
telemetry_consumer.get_telemetry_init_consumer(),
352+
telemetry_producer.get_telemetry_init_producer(),
353353
mocker.Mock()
354354
)
355355

@@ -381,7 +381,7 @@ def test_track(self, mocker):
381381
mocker.Mock(),
382382
mocker.Mock(),
383383
telemetry_producer,
384-
telemetry_consumer.get_telemetry_init_consumer(),
384+
telemetry_producer.get_telemetry_init_producer(),
385385
mocker.Mock()
386386
)
387387

@@ -418,7 +418,7 @@ def test_evaluations_before_running_post_fork(self, mocker):
418418
mocker.Mock(),
419419
mocker.Mock(),
420420
telemetry_producer,
421-
telemetry_consumer.get_telemetry_init_consumer(),
421+
telemetry_producer.get_telemetry_init_producer(),
422422
mocker.Mock(),
423423
True
424424
)
@@ -468,7 +468,7 @@ def test_telemetry_not_ready(self, mocker):
468468
mocker.Mock(),
469469
mocker.Mock(),
470470
telemetry_producer,
471-
telemetry_consumer.get_telemetry_init_consumer(),
471+
telemetry_producer.get_telemetry_init_producer(),
472472
mocker.Mock()
473473
)
474474
client = Client(factory, mocker.Mock())
@@ -506,7 +506,7 @@ def test_telemetry_record_treatment_exception(self, mocker):
506506
impmanager,
507507
mocker.Mock(),
508508
telemetry_producer,
509-
telemetry_consumer.get_telemetry_init_consumer(),
509+
telemetry_producer.get_telemetry_init_producer(),
510510
mocker.Mock()
511511
)
512512
client = Client(factory, recorder, True)
@@ -550,7 +550,7 @@ def test_telemetry_record_treatments_exception(self, mocker):
550550
impmanager,
551551
mocker.Mock(),
552552
telemetry_producer,
553-
telemetry_consumer.get_telemetry_init_consumer(),
553+
telemetry_producer.get_telemetry_init_producer(),
554554
mocker.Mock()
555555
)
556556
client = Client(factory, recorder, True)
@@ -593,7 +593,7 @@ def test_telemetry_method_latency(self, mocker):
593593
impmanager,
594594
mocker.Mock(),
595595
telemetry_producer,
596-
telemetry_consumer.get_telemetry_init_consumer(),
596+
telemetry_producer.get_telemetry_init_producer(),
597597
mocker.Mock()
598598
)
599599
client = Client(factory, recorder, True)
@@ -635,7 +635,7 @@ def test_telemetry_track_exception(self, mocker):
635635
impmanager,
636636
mocker.Mock(),
637637
telemetry_producer,
638-
telemetry_consumer.get_telemetry_init_consumer(),
638+
telemetry_producer.get_telemetry_init_producer(),
639639
mocker.Mock()
640640
)
641641
client = Client(factory, recorder, True)

tests/client/test_input_validator.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ def test_track(self, mocker):
553553
impmanager,
554554
mocker.Mock(),
555555
telemetry_producer,
556-
telemetry_consumer.get_telemetry_init_consumer(),
556+
telemetry_producer.get_telemetry_init_producer(),
557557
mocker.Mock()
558558
)
559559
factory._apikey = 'some-test'
@@ -828,7 +828,7 @@ def test_get_treatments(self, mocker):
828828
impmanager,
829829
mocker.Mock(),
830830
telemetry_producer,
831-
telemetry_consumer.get_telemetry_init_consumer(),
831+
telemetry_producer.get_telemetry_init_producer(),
832832
mocker.Mock()
833833
)
834834
ready_mock = mocker.PropertyMock()
@@ -969,7 +969,7 @@ def test_get_treatments_with_config(self, mocker):
969969
impmanager,
970970
mocker.Mock(),
971971
telemetry_producer,
972-
telemetry_consumer.get_telemetry_init_consumer(),
972+
telemetry_producer.get_telemetry_init_producer(),
973973
mocker.Mock()
974974
)
975975

@@ -1105,7 +1105,7 @@ def test_split_(self, mocker):
11051105
impmanager,
11061106
mocker.Mock(),
11071107
telemetry_producer,
1108-
telemetry_consumer.get_telemetry_init_consumer(),
1108+
telemetry_producer.get_telemetry_init_producer(),
11091109
mocker.Mock()
11101110
)
11111111

tests/client/test_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def test_evaluations_before_running_post_fork(self, mocker):
3131
impmanager,
3232
mocker.Mock(),
3333
telemetry_producer,
34-
telemetry_consumer.get_telemetry_init_consumer(),
34+
telemetry_producer.get_telemetry_init_producer(),
3535
mocker.Mock(),
3636
True
3737
)

tests/integration/test_client_e2e.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def setup_method(self):
7272
recorder,
7373
None,
7474
telemetry_producer=telemetry_producer,
75-
telemetry_init_consumer=telemetry_consumer.get_telemetry_init_consumer(),
75+
telemetry_init_producer=telemetry_producer.get_telemetry_init_producer(),
7676
) # pylint:disable=attribute-defined-outside-init
7777
except:
7878
pass
@@ -348,7 +348,7 @@ def setup_method(self):
348348
recorder,
349349
None,
350350
telemetry_producer=telemetry_producer,
351-
telemetry_init_consumer=telemetry_consumer.get_telemetry_init_consumer(),
351+
telemetry_init_producer=telemetry_producer.get_telemetry_init_producer(),
352352
) # pylint:disable=attribute-defined-outside-init
353353

354354
def _validate_last_impressions(self, client, *to_validate):
@@ -578,7 +578,7 @@ def setup_method(self):
578578
True,
579579
recorder,
580580
telemetry_producer=telemetry_producer,
581-
telemetry_init_consumer=telemetry_consumer.get_telemetry_init_consumer(),
581+
telemetry_init_producer=telemetry_producer.get_telemetry_init_producer(),
582582
) # pylint:disable=attribute-defined-outside-init
583583

584584
def _validate_last_impressions(self, client, *to_validate):
@@ -870,7 +870,7 @@ def setup_method(self):
870870
True,
871871
recorder,
872872
telemetry_producer=telemetry_producer,
873-
telemetry_init_consumer=telemetry_consumer.get_telemetry_init_consumer(),
873+
telemetry_init_producer=telemetry_producer.get_telemetry_init_producer(),
874874
) # pylint:disable=attribute-defined-outside-init
875875

876876
class LocalhostIntegrationTests(object): # pylint: disable=too-few-public-methods

tests/recorder/test_recorder.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22

33
import pytest
44

5-
from splitio.client.util import get_method_constant
65
from splitio.recorder.recorder import StandardRecorder, PipelinedRecorder
76
from splitio.engine.impressions.impressions import Manager as ImpressionsManager
87
from splitio.engine.telemetry import TelemetryStorageProducer
98
from splitio.storage.inmemmory import EventStorage, ImpressionStorage, InMemoryTelemetryStorage
109
from splitio.storage.redis import ImpressionPipelinedStorage, EventStorage, RedisEventsStorage, RedisImpressionsStorage, RedisTelemetryStorage
1110
from splitio.storage.adapters.redis import RedisAdapter
1211
from splitio.models.impressions import Impression
13-
12+
from splitio.models.telemetry import MethodExceptionsAndLatencies
1413

1514

1615
class StandardRecorderTests(object):
@@ -34,10 +33,10 @@ def record_latency(*args, **kwargs):
3433
telemetry_storage.record_latency.side_effect = record_latency
3534

3635
recorder = StandardRecorder(impmanager, event, impression, telemetry_producer.get_telemetry_evaluation_producer())
37-
recorder.record_treatment_stats(impressions, 1, 'some', 'get_treatment')
36+
recorder.record_treatment_stats(impressions, 1, MethodExceptionsAndLatencies.TREATMENT, 'get_treatment')
3837

3938
assert recorder._impression_storage.put.mock_calls[0][1][0] == impressions
40-
assert(self.passed_args[0] == get_method_constant('treatment'))
39+
assert(self.passed_args[0] == MethodExceptionsAndLatencies.TREATMENT)
4140
assert(self.passed_args[1] == 1)
4241

4342
def test_pipelined_recorder(self, mocker):
@@ -51,13 +50,12 @@ def test_pipelined_recorder(self, mocker):
5150
event = mocker.Mock(spec=RedisEventsStorage)
5251
impression = mocker.Mock(spec=RedisImpressionsStorage)
5352
recorder = PipelinedRecorder(redis, impmanager, event, impression, mocker.Mock())
54-
recorder.record_treatment_stats(impressions, 1, 'some', 'get_treatment')
53+
recorder.record_treatment_stats(impressions, 1, MethodExceptionsAndLatencies.TREATMENT, 'get_treatment')
5554
# pytest.set_trace()
5655
assert recorder._impression_storage.add_impressions_to_pipe.mock_calls[0][1][0] == impressions
57-
assert recorder._telemetry_redis_storage.add_latency_to_pipe.mock_calls[0][1][0] == 'treatment'
56+
assert recorder._telemetry_redis_storage.add_latency_to_pipe.mock_calls[0][1][0] == MethodExceptionsAndLatencies.TREATMENT
5857
assert recorder._telemetry_redis_storage.add_latency_to_pipe.mock_calls[0][1][1] == 1
5958

60-
6159
def test_sampled_recorder(self, mocker):
6260
impressions = [
6361
Impression('k1', 'f1', 'on', 'l1', 123, None, None),

tests/storage/test_redis.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
import unittest.mock as mock
77
import pytest
88

9-
from splitio.client.util import get_metadata, SdkMetadata, get_method_constant
9+
from splitio.client.util import get_metadata, SdkMetadata
1010
from splitio.storage.redis import RedisEventsStorage, RedisImpressionsStorage, \
1111
RedisSegmentStorage, RedisSplitStorage, RedisTelemetryStorage
1212
from splitio.storage.adapters.redis import RedisAdapter, RedisAdapterException, build
1313
from splitio.models.segments import Segment
1414
from splitio.models.impressions import Impression
1515
from splitio.models.events import Event, EventWrapper
16-
from splitio.models.telemetry import MethodExceptions, MethodLatencies, TelemetryConfig
16+
from splitio.models.telemetry import MethodExceptions, MethodLatencies, TelemetryConfig, MethodExceptionsAndLatencies
1717

1818

1919
class RedisSplitStorageTests(object):
@@ -394,8 +394,6 @@ def test_init(self, mocker):
394394
assert(isinstance(redis_telemetry._method_latencies, MethodLatencies))
395395
assert(isinstance(redis_telemetry._method_exceptions, MethodExceptions))
396396
assert(isinstance(redis_telemetry._tel_config, TelemetryConfig))
397-
assert(redis_telemetry.host_ip is not None)
398-
assert(redis_telemetry.host_name is not None)
399397
assert(redis_telemetry._make_pipe is not None)
400398

401399
@mock.patch('splitio.models.telemetry.TelemetryConfig.record_config')
@@ -419,7 +417,8 @@ def test_format_config_stats(self, mocker):
419417
'aF': stats['aF'],
420418
'rF': stats['rF'],
421419
'sT': stats['sT'],
422-
'oM': stats['oM']
420+
'oM': stats['oM'],
421+
't': redis_telemetry.pop_config_tags()
423422
}))
424423

425424
def test_record_active_and_redundant_factories(self, mocker):
@@ -441,12 +440,12 @@ def _mocked_hincrby(*args, **kwargs):
441440
redis_telemetry = RedisTelemetryStorage(adapter, metadata)
442441
pipe = adapter._decorated.pipeline()
443442
with mock.patch('redis.client.Pipeline.hincrby', _mocked_hincrby):
444-
redis_telemetry.add_latency_to_pipe('treatment', 20, pipe)
443+
redis_telemetry.add_latency_to_pipe(MethodExceptionsAndLatencies.TREATMENT, 20, pipe)
445444

446445
def test_record_exception(self, mocker):
447446
def _mocked_hincrby(*args, **kwargs):
448447
assert(args[1] == RedisTelemetryStorage._TELEMETRY_EXCEPTIONS_KEY)
449-
assert(args[2][-9:] == 'treatment')
448+
assert(args[2] == 'python-1.1.1/hostname/ip/treatment')
450449
assert(args[3] == 1)
451450

452451
adapter = build({})
@@ -455,7 +454,7 @@ def _mocked_hincrby(*args, **kwargs):
455454
with mock.patch('redis.client.Pipeline.hincrby', _mocked_hincrby):
456455
with mock.patch('redis.client.Pipeline.execute') as mock_method:
457456
mock_method.return_value = [1]
458-
redis_telemetry.record_exception(get_method_constant('treatment'))
457+
redis_telemetry.record_exception(MethodExceptionsAndLatencies.TREATMENT)
459458

460459
def test_expire_latency_keys(self, mocker):
461460
redis_telemetry = RedisTelemetryStorage(mocker.Mock(), mocker.Mock())

tests/sync/test_telemetry.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,41 @@
11
"""Telemetry Worker tests."""
22
import unittest.mock as mock
33
import json
4-
from splitio.sync.telemetry import TelemetrySynchronizer, TelemetrySubmitter
4+
from splitio.sync.telemetry import TelemetrySynchronizer, InMemoryTelemetrySubmitter
55
from splitio.engine.telemetry import TelemetryEvaluationConsumer, TelemetryInitConsumer, TelemetryRuntimeConsumer, TelemetryStorageConsumer
66
from splitio.storage.inmemmory import InMemoryTelemetryStorage, InMemorySegmentStorage, InMemorySplitStorage
77
from splitio.models.splits import Split, Status
88
from splitio.models.segments import Segment
99
from splitio.models.telemetry import StreamingEvents
10+
from splitio.api.telemetry import TelemetryAPI
1011

1112
class 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

2627
class 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

Comments
 (0)