def test_segment_change(self, mocker): """Test update-type messages are properly forwarded to the processor.""" sse_event = SSEEvent('1', EventType.MESSAGE, '', '{}') update_message = SegmentChangeUpdate('chan', 123, 456, 'some_segment') parse_event_mock = mocker.Mock(spec=parse_incoming_event) parse_event_mock.return_value = update_message mocker.patch('splitio.push.manager.parse_incoming_event', new=parse_event_mock) processor_mock = mocker.Mock(spec=MessageProcessor) mocker.patch('splitio.push.manager.MessageProcessor', new=processor_mock) manager = PushManager(mocker.Mock(), mocker.Mock(), mocker.Mock()) manager._event_handler(sse_event) assert parse_event_mock.mock_calls == [mocker.call(sse_event)] assert processor_mock.mock_calls == [ mocker.call(Any()), mocker.call().handle(update_message) ]
def test_occupancy_message(self, mocker): """Test control mesage is forwarded to status tracker.""" sse_event = SSEEvent('1', EventType.MESSAGE, '', '{}') occupancy_message = OccupancyMessage( '[?occupancy=metrics.publishers]control_pri', 123, 2) parse_event_mock = mocker.Mock(spec=parse_incoming_event) parse_event_mock.return_value = occupancy_message mocker.patch('splitio.push.manager.parse_incoming_event', new=parse_event_mock) status_tracker_mock = mocker.Mock(spec=PushStatusTracker) mocker.patch('splitio.push.manager.PushStatusTracker', new=status_tracker_mock) manager = PushManager(mocker.Mock(), mocker.Mock(), mocker.Mock()) manager._event_handler(sse_event) assert parse_event_mock.mock_calls == [mocker.call(sse_event)] assert status_tracker_mock.mock_calls == [ mocker.call(), mocker.call().handle_occupancy(occupancy_message) ]
def test_control_message(self, mocker): """Test control mesage is forwarded to status tracker.""" sse_event = SSEEvent('1', EventType.MESSAGE, '', '{}') control_message = ControlMessage('chan', 123, ControlType.STREAMING_ENABLED) parse_event_mock = mocker.Mock(spec=parse_incoming_event) parse_event_mock.return_value = control_message mocker.patch('splitio.push.manager.parse_incoming_event', new=parse_event_mock) status_tracker_mock = mocker.Mock(spec=PushStatusTracker) mocker.patch('splitio.push.manager.PushStatusTracker', new=status_tracker_mock) manager = PushManager(mocker.Mock(), mocker.Mock(), mocker.Mock()) manager._event_handler(sse_event) assert parse_event_mock.mock_calls == [mocker.call(sse_event)] assert status_tracker_mock.mock_calls == [ mocker.call(), mocker.call().handle_control_message(control_message) ]