Пример #1
0
    def test_expire_stream_error(self, mock_config_wrap):
        pm = pipeline_manager.PipelineManager('test')
        stream = mock.MagicMock(name='stream')
        stream.name = 'test'
        pm.db = mock.MagicMock(spec=pm.db, name='db')
        pm.db.set_stream_state.return_value = stream
        trigger_def = mock.MagicMock(name='trigger_def')
        trigger_def.expire_pipeline = 'test_fire_pipeline'
        pm.trigger_manager.trigger_map = dict(test=trigger_def)
        pipeline_config = mock.MagicMock(name='pipeline_config')
        pm.pipeline_config = dict(test_fire_pipeline=pipeline_config)
        pm._expire_error_stream = mock.MagicMock(name='_expire_error_stream')
        pm._complete_stream = mock.MagicMock(name='_complete_stream')
        pm._run_pipeline = mock.MagicMock(name='_run_pipeline')
        pm._run_pipeline.return_value = False

        ret = pm.expire_stream(stream)
        pm.db.set_stream_state.assert_called_once_with(stream,
                                                       StreamState.expiring)
        pm._run_pipeline.assert_called_once_with(stream, trigger_def,
                                                 'test_fire_pipeline',
                                                 pipeline_config)
        self.assertFalse(pm._complete_stream.called)
        pm._expire_error_stream.assert_called_once_with(stream)
        self.assertFalse(ret)
Пример #2
0
    def test_run_pipeline_with_error(self, mock_config_wrap, mock_pipeline):
        pm = pipeline_manager.PipelineManager('test')
        pm.db = mock.MagicMock(spec=pm.db, name='db')
        trigger_def = mock.MagicMock(name='trigger_def')
        trigger_def.debugger = self.debugger
        pipeline_name = "test"
        pipeline_config = mock.MagicMock(name='pipeline_config')
        stream = mock.MagicMock(name='stream')
        stream.name = "test"
        pm.add_new_events = mock.MagicMock(name='add_nemw_events')
        pm.pipeline_handlers = mock.MagicMock(name='pipeline_handlers')
        pipeline = mock_pipeline.return_value
        pipeline.handle_events.side_effect = \
            pipeline_manager.PipelineExecutionError('test', 'thing')

        ret = pm._run_pipeline(stream, trigger_def, pipeline_name,
                               pipeline_config)

        pm.db.get_stream_events.assert_called_once_with(stream)
        mock_pipeline.assert_called_once_with(pipeline_name, pipeline_config,
                                              pm.pipeline_handlers)

        pipeline.handle_events.assert_called_once_with(
            pm.db.get_stream_events.return_value, stream, self.debugger)
        self.assertFalse(pm.add_new_events.called)
        self.assertFalse(ret)
Пример #3
0
 def test_expire_error_stream(self, mock_config_wrap):
     pm = pipeline_manager.PipelineManager('test')
     pm.db = mock.MagicMock(spec=pm.db)
     stream = "test stream"
     pm._expire_error_stream(stream)
     pm.db.set_stream_state.assert_called_once_with(
         stream, StreamState.expire_error)
Пример #4
0
 def test_complete_stream_purge(self, mock_config_wrap):
     pm = pipeline_manager.PipelineManager('test')
     pm.db = mock.MagicMock(spec=pm.db)
     pm.purge_completed_streams = True
     stream = "test stream"
     pm._complete_stream(stream)
     pm.db.purge_stream.assert_called_once_with(stream)
Пример #5
0
    def test_safe_get_debugger(self, mock_config_wrap):
        pm = pipeline_manager.PipelineManager('test')
        tdef = mock.MagicMock(name="tdef")
        tdef.name = "my trigger"
        tdef.debugger = self.debugger
        self.assertEqual(pm.safe_get_debugger(tdef), self.debugger)

        self.assertEqual(pm.safe_get_debugger(None)._name, "n/a")
Пример #6
0
 def test_complete_stream_nopurge(self, mock_config_wrap):
     pm = pipeline_manager.PipelineManager('test')
     pm.db = mock.MagicMock(spec=pm.db)
     pm.purge_completed_streams = False
     stream = "test stream"
     pm._complete_stream(stream)
     pm.db.set_stream_state.assert_called_once_with(stream,
                                                    StreamState.completed)
Пример #7
0
    def test_process_ready_streams_expire(self, mock_config_wrap):
        pm = pipeline_manager.PipelineManager('test')
        pm.db = mock.MagicMock(spec=pm.db, name='db')
        stream = mock.MagicMock(name='stream')
        stream.name = "my_stream"
        pm.expire_stream = mock.MagicMock(name='expire_stream')
        pm.fire_stream = mock.MagicMock(name='fire_stream')
        pm.current_time = mock.MagicMock(name='current_time')
        pm.db.get_ready_streams.return_value = [stream]

        ret = pm.process_ready_streams(42, expire=True)
        pm.db.get_ready_streams.assert_called_once_with(
            42, pm.current_time.return_value, expire=True)
        pm.expire_stream.assert_called_once_with(stream)
        self.assertFalse(pm.fire_stream.called)
        self.assertEqual(ret, 1)
Пример #8
0
    def test_fire_stream_locked(self, mock_config_wrap):
        pm = pipeline_manager.PipelineManager('test')
        stream = mock.MagicMock(name='stream')
        stream.name = 'test'
        pm.db = mock.MagicMock(spec=pm.db, name='db')
        pm.db.set_stream_state.side_effect = winch_db.LockError('locked!')
        trigger_def = mock.MagicMock(name='trigger_def')
        trigger_def.fire_pipeline = 'test_fire_pipeline'
        pm.trigger_manager.trigger_map = dict(test=trigger_def)
        pipeline_config = mock.MagicMock(name='pipeline_config')
        pm.pipeline_config = dict(test_fire_pipeline=pipeline_config)
        pm._error_stream = mock.MagicMock(name='_error_stream')
        pm._complete_stream = mock.MagicMock(name='_complete_stream')
        pm._run_pipeline = mock.MagicMock(name='_run_pipeline')
        pm._run_pipeline.return_value = True

        ret = pm.fire_stream(stream)
        pm.db.set_stream_state.assert_called_once_with(stream,
                                                       StreamState.firing)
        self.assertFalse(pm._run_pipeline.called)
        self.assertFalse(pm._error_stream.called)
        self.assertFalse(pm._complete_stream.called)
        self.assertFalse(ret)