Пример #1
0
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
Пример #2
0
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)
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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