|
3 | 3 |
|
4 | 4 | import json |
5 | 5 | import os |
6 | | -from splitio.client.client import Client, _LOGGER as _logger |
| 6 | +from splitio.client.client import Client, _LOGGER as _logger, CONTROL |
7 | 7 | from splitio.client.factory import SplitFactory |
8 | 8 | from splitio.engine.evaluator import Evaluator |
9 | 9 | from splitio.models.impressions import Impression, Label |
@@ -357,40 +357,38 @@ def _get_storage_mock(name): |
357 | 357 | assert client.destroyed is not None |
358 | 358 | assert destroyed_mock.mock_calls == [mocker.call()] |
359 | 359 |
|
360 | | - def test_track(self, mocker): |
361 | | - """Test that destroy/destroyed calls are forwarded to the factory.""" |
362 | | - split_storage = mocker.Mock(spec=SplitStorage) |
363 | | - segment_storage = mocker.Mock(spec=SegmentStorage) |
364 | | - impression_storage = mocker.Mock(spec=ImpressionStorage) |
365 | | - event_storage = mocker.Mock(spec=EventStorage) |
366 | | - event_storage.put.return_value = True |
367 | | - telemetry_storage = mocker.Mock(spec=TelemetryStorage) |
| 360 | + def test_evaluations_before_running_post_fork(self, mocker): |
| 361 | + destroyed_property = mocker.PropertyMock() |
| 362 | + destroyed_property.return_value = False |
368 | 363 |
|
369 | | - def _get_storage_mock(name): |
370 | | - return { |
371 | | - 'splits': split_storage, |
372 | | - 'segments': segment_storage, |
373 | | - 'impressions': impression_storage, |
374 | | - 'events': event_storage, |
375 | | - 'telemetry': telemetry_storage |
376 | | - }[name] |
377 | 364 | factory = mocker.Mock(spec=SplitFactory) |
378 | | - factory._get_storage = _get_storage_mock |
379 | | - destroyed_mock = mocker.PropertyMock() |
380 | | - destroyed_mock.return_value = False |
381 | | - factory._waiting_fork.return_value = False |
382 | | - type(factory).destroyed = destroyed_mock |
383 | | - factory._apikey = 'test' |
384 | | - mocker.patch('splitio.client.client.utctime_ms', new=lambda: 1000) |
| 365 | + factory._waiting_fork.return_value = True |
| 366 | + type(factory).destroyed = destroyed_property |
385 | 367 |
|
386 | | - impmanager = mocker.Mock(spec=ImpressionManager) |
387 | | - recorder = StandardRecorder(impmanager, telemetry_storage, event_storage, |
388 | | - impression_storage) |
389 | | - client = Client(factory, recorder, True) |
390 | | - assert client.track('key', 'user', 'purchase', 12) is True |
391 | | - assert mocker.call([ |
392 | | - EventWrapper( |
393 | | - event=Event('key', 'user', 'purchase', 12, 1000, None), |
394 | | - size=1024 |
395 | | - ) |
396 | | - ]) in event_storage.put.mock_calls |
| 368 | + expected_msg = [ |
| 369 | + mocker.call('Client is not ready - no calls possible') |
| 370 | + ] |
| 371 | + |
| 372 | + client = Client(factory, mocker.Mock()) |
| 373 | + _logger = mocker.Mock() |
| 374 | + mocker.patch('splitio.client.client._LOGGER', new=_logger) |
| 375 | + |
| 376 | + assert client.get_treatment('some_key', 'some_feature') == CONTROL |
| 377 | + assert _logger.error.mock_calls == expected_msg |
| 378 | + _logger.reset_mock() |
| 379 | + |
| 380 | + assert client.get_treatment_with_config('some_key', 'some_feature') == (CONTROL, None) |
| 381 | + assert _logger.error.mock_calls == expected_msg |
| 382 | + _logger.reset_mock() |
| 383 | + |
| 384 | + assert client.track("some_key", "traffic_type", "event_type", None) is False |
| 385 | + assert _logger.error.mock_calls == expected_msg |
| 386 | + _logger.reset_mock() |
| 387 | + |
| 388 | + assert client.get_treatments(None, ['some_feature']) == {'some_feature': CONTROL} |
| 389 | + assert _logger.error.mock_calls == expected_msg |
| 390 | + _logger.reset_mock() |
| 391 | + |
| 392 | + assert client.get_treatments_with_config('some_key', ['some_feature']) == {'some_feature': (CONTROL, None)} |
| 393 | + assert _logger.error.mock_calls == expected_msg |
| 394 | + _logger.reset_mock() |
0 commit comments