def test_plugin_fail_stop(mock_plugin, caplog): plugin_handler = PluginHandler("mock_plugin", {"foo": 1}, "bar", log) mock_plugin.stop.side_effect = Exception() plugin_handler.start() plugin_handler.put((metadata, 1)) plugin_handler.stop() assert "ERROR" in caplog.text
def test_plugin_put(mock_plugin): plugin_handler = PluginHandler("mock_plugin", {"foo": 1}, "bar", log) plugin_handler.start() plugin_handler.put((metadata, 1)) plugin_handler.stop() mock_plugin.process.assert_called_once_with( local_path="bar/relative_path/filename", metadata=metadata, data=1)
def test_plugin_fail_process(mock_plugin, caplog): plugin_handler = PluginHandler("mock_plugin", {"foo": 1}, "bar", log) mock_plugin.process.side_effect = Exception() plugin_handler.start() plugin_handler.put((metadata, 1)) plugin_handler.stop() mock_plugin.stop.assert_called_once_with() assert "ERROR" in caplog.text
def test_plugin_slow_stop(mock_plugin, caplog): plugin_handler = PluginHandler("mock_plugin", {"foo": 1}, "bar", log) mock_plugin.stop.side_effect = lambda *args, **kwargs: time.sleep(100) t0 = time.time() plugin_handler.start() plugin_handler.put((metadata, 1)) plugin_handler.stop(0) assert time.time() - t0 < 10 assert "timeout" in caplog.text
def test_plugin_queue_overlow(mock_plugin, caplog): """ The queue size limit is not exceeded and put doesn't block when the limit is reached """ plugin_handler = PluginHandler("mock_plugin", {"foo": 1}, "bar", log) mock_plugin.process.side_effect = lambda *args, **kwargs: time.sleep(100) t0 = time.time() plugin_handler.start() for i in range(10005): plugin_handler.put((metadata, 1)) plugin_handler.stop(0) assert time.time() - t0 < 10 assert plugin_handler.plugin_queue.qsize() == 10000 assert "Skipping" in caplog.text