11"""SDK main manager test module."""
2+ import pytest
23
34from splitio .client .factory import SplitFactory
45from splitio .client .manager import SplitManager , _LOGGER as _logger
56from splitio .storage import SplitStorage , EventStorage , ImpressionStorage , SegmentStorage
6- from splitio .storage .inmemmory import InMemoryTelemetryStorage
7+ from splitio .storage .inmemmory import InMemoryTelemetryStorage , InMemorySplitStorage
8+ from splitio .models import splits
79from splitio .engine .impressions .impressions import Manager as ImpressionManager
810from splitio .engine .telemetry import TelemetryStorageProducer , TelemetryStorageConsumer
911from splitio .recorder .recorder import StandardRecorder
10-
12+ from tests . models . test_splits import SplitTests
1113
1214class ManagerTests (object ): # pylint: disable=too-few-public-methods
1315 """Split manager test cases."""
@@ -19,7 +21,6 @@ def test_evaluations_before_running_post_fork(self, mocker):
1921 impmanager = mocker .Mock (spec = ImpressionManager )
2022 telemetry_storage = InMemoryTelemetryStorage ()
2123 telemetry_producer = TelemetryStorageProducer (telemetry_storage )
22- telemetry_consumer = TelemetryStorageConsumer (telemetry_storage )
2324 recorder = StandardRecorder (impmanager , mocker .Mock (), mocker .Mock (), telemetry_producer .get_telemetry_evaluation_producer ())
2425 factory = SplitFactory (mocker .Mock (),
2526 {'splits' : mocker .Mock (),
@@ -55,3 +56,37 @@ def test_evaluations_before_running_post_fork(self, mocker):
5556 assert manager .splits () == []
5657 assert _logger .error .mock_calls == expected_msg
5758 _logger .reset_mock ()
59+
60+ def test_manager_calls (self , mocker ):
61+ split_storage = InMemorySplitStorage ()
62+ split = splits .from_raw (SplitTests .raw )
63+ split_storage .update ([split ], [], 123 )
64+ factory = SplitFactory (mocker .Mock (),
65+ {'splits' : split_storage ,
66+ 'segments' : mocker .Mock (),
67+ 'impressions' : mocker .Mock (),
68+ 'events' : mocker .Mock ()},
69+ mocker .Mock (),
70+ mocker .Mock (),
71+ mocker .Mock (),
72+ mocker .Mock (),
73+ mocker .Mock (),
74+ mocker .Mock (),
75+ mocker .Mock (),
76+ False
77+ )
78+ manager = SplitManager (factory )
79+ splits_view = manager .splits ()
80+ self ._verify_split (splits_view [0 ])
81+ assert manager .split_names () == ['some_name' ]
82+ split_view = manager .split ('some_name' )
83+ self ._verify_split (split_view )
84+
85+ def _verify_split (self , split ):
86+ assert split .name == 'some_name'
87+ assert split .traffic_type == 'user'
88+ assert split .killed == False
89+ assert split .treatments == ['on' , 'off' ]
90+ assert split .change_number == 123
91+ assert split .configs == {'on' : '{"color": "blue", "size": 13}' }
92+ assert split .sets == ['set1' , 'set2' ]
0 commit comments