Skip to content

Commit 06950f0

Browse files
authored
Merge pull request #618 from splitio/FME-12226-events-localhost
updated localhost classes and tests
2 parents e06630f + f2608fa commit 06950f0

File tree

4 files changed

+25
-7
lines changed

4 files changed

+25
-7
lines changed

splitio/client/factory.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,7 +1180,7 @@ def _build_localhost_factory(cfg):
11801180
feature_flag_sync_task,
11811181
segment_sync_task,
11821182
None, None, None,
1183-
internal_events_task
1183+
internal_events_task=internal_events_task
11841184
)
11851185

11861186
sdk_metadata = util.get_metadata(cfg)
@@ -1262,7 +1262,7 @@ async def _build_localhost_factory_async(cfg):
12621262
feature_flag_sync_task,
12631263
segment_sync_task,
12641264
None, None, None,
1265-
internal_events_task
1265+
internal_events_task=internal_events_task
12661266
)
12671267

12681268
sdk_metadata = util.get_metadata(cfg)

splitio/sync/synchronizer.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -955,12 +955,13 @@ def sync_all(self, till=None):
955955

956956
def stop_periodic_fetching(self):
957957
"""Stop fetchers for feature flags and segments."""
958+
_LOGGER.debug('Stopping periodic fetching')
958959
if self._split_tasks.split_task is not None:
959-
_LOGGER.debug('Stopping periodic fetching')
960960
self._split_tasks.split_task.stop()
961961
if self._split_tasks.segment_task is not None:
962962
self._split_tasks.segment_task.stop()
963963
if self._split_tasks.internal_events_task:
964+
_LOGGER.debug('Stopping internal events notification')
964965
self._split_tasks.internal_events_task.stop()
965966

966967
def synchronize_splits(self):
@@ -1031,12 +1032,15 @@ async def sync_all(self, till=None):
10311032

10321033
async def stop_periodic_fetching(self):
10331034
"""Stop fetchers for feature flags and segments."""
1035+
_LOGGER.debug('Stopping periodic fetching')
10341036
if self._split_tasks.split_task is not None:
1035-
_LOGGER.debug('Stopping periodic fetching')
10361037
await self._split_tasks.split_task.stop()
10371038
if self._split_tasks.segment_task is not None:
1038-
await self._split_tasks.segment_task.stop()
1039-
1039+
await self._split_tasks.segment_task.stop()
1040+
if self._split_tasks.internal_events_task is not None:
1041+
_LOGGER.debug('Stopping internal events notification')
1042+
await self._split_tasks.internal_events_task.stop()
1043+
10401044
async def synchronize_splits(self):
10411045
"""Synchronize all feature flags."""
10421046
try:

tests/integration/test_streaming_e2e.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1367,6 +1367,9 @@ def test_change_number(mocker):
13671367
class StreamingIntegrationAsyncTests(object):
13681368
"""Test streaming operation and failover."""
13691369

1370+
update_flag = False
1371+
metadata = []
1372+
13701373
@pytest.mark.asyncio
13711374
async def test_happiness(self):
13721375
"""Test initialization & splits/segment updates."""
@@ -1421,6 +1424,7 @@ async def test_happiness(self):
14211424

14221425
factory = await get_factory_async('some_apikey', **kwargs)
14231426
await factory.block_until_ready(1)
1427+
await factory.client().on(SdkEvent.SDK_UPDATE, self._update_callcack)
14241428
assert factory.ready
14251429
assert await factory.client().get_treatment('maldo', 'split1') == 'on'
14261430

@@ -1437,6 +1441,13 @@ async def test_happiness(self):
14371441
'rbs': {'t': -1, 's': -1, 'd': []}}
14381442
sse_server.publish(make_split_change_event(2))
14391443
await asyncio.sleep(1)
1444+
flag = False
1445+
for meta in self.metadata:
1446+
if 'split1' in meta.get_names():
1447+
assert meta.get_type() == SdkEventType.FLAG_UPDATE
1448+
flag = True
1449+
assert flag
1450+
14401451
assert await factory.client().get_treatment('maldo', 'split1') == 'off'
14411452

14421453
split_changes[2] = {'ff': {
@@ -1556,6 +1567,10 @@ async def test_happiness(self):
15561567
sse_server.stop()
15571568
split_backend.stop()
15581569

1570+
async def _update_callcack(self, metadata):
1571+
self.update_flag = True
1572+
self.metadata.append(metadata)
1573+
15591574
@pytest.mark.asyncio
15601575
async def test_occupancy_flicker(self):
15611576
"""Test that changes in occupancy switch between polling & streaming properly."""

tests/sync/test_synchronizer.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@ def intersect(sets):
210210
mocker.Mock(), mocker.Mock())
211211

212212
synchronizer = Synchronizer(split_synchronizers, mocker.Mock(spec=SplitTasks))
213-
# pytest.set_trace()
214213
self.clear = False
215214
def clear():
216215
self.clear = True

0 commit comments

Comments
 (0)