Skip to content

Commit 85a2cd5

Browse files
author
Matias Melograno
committed
added manager tests
1 parent 956667e commit 85a2cd5

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed

tests/client/test_factory.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
import time
66
import threading
7-
from splitio.client.factory import get_factory, SplitFactory, _INSTANTIATED_FACTORIES, Status
7+
from splitio.client.factory import get_factory, SplitFactory, _INSTANTIATED_FACTORIES, Status,\
8+
_LOGGER as _logger
89
from splitio.client.config import DEFAULT_CONFIG
910
from splitio.storage import redis, inmemmory, uwsgi
1011
from splitio.tasks import events_sync, impressions_sync, split_sync, segment_sync, telemetry_sync
@@ -558,3 +559,17 @@ def _recreate(self):
558559
assert clear_impressions._called == 1
559560
assert clear_events._called == 1
560561
assert clear_telemetry._called == 1
562+
563+
def test_error_prefork(self, mocker):
564+
"""Test not handling fork."""
565+
expected_msg = [
566+
mocker.call('Cannot call handle_post_fork')
567+
]
568+
569+
factory = get_factory("localhost")
570+
factory.block_until_ready(1)
571+
572+
_logger = mocker.Mock()
573+
mocker.patch('splitio.client.factory._LOGGER', new=_logger)
574+
factory.handle_post_fork()
575+
assert _logger.warning.mock_calls == expected_msg

tests/client/test_manager.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"""SDK main manager test module."""
2+
3+
from splitio.client.factory import SplitFactory
4+
from splitio.client.manager import SplitManager, _LOGGER as _logger
5+
6+
7+
class ManagerTests(object): # pylint: disable=too-few-public-methods
8+
"""Split manager test cases."""
9+
10+
def test_evaluations_before_running_post_fork(self, mocker):
11+
destroyed_property = mocker.PropertyMock()
12+
destroyed_property.return_value = False
13+
14+
factory = mocker.Mock(spec=SplitFactory)
15+
factory._waiting_fork.return_value = True
16+
type(factory).destroyed = destroyed_property
17+
18+
expected_msg = [
19+
mocker.call('Client is not ready - no calls possible')
20+
]
21+
22+
manager = SplitManager(factory)
23+
_logger = mocker.Mock()
24+
mocker.patch('splitio.client.manager._LOGGER', new=_logger)
25+
26+
assert manager.split_names() == []
27+
assert _logger.error.mock_calls == expected_msg
28+
_logger.reset_mock()
29+
30+
assert manager.split('some_feature') is None
31+
assert _logger.error.mock_calls == expected_msg
32+
_logger.reset_mock()
33+
34+
assert manager.splits() == []
35+
assert _logger.error.mock_calls == expected_msg
36+
_logger.reset_mock()

0 commit comments

Comments
 (0)