diff --git a/tests/test_warcprox.py b/tests/test_warcprox.py index 5e13f95..6ab90f6 100755 --- a/tests/test_warcprox.py +++ b/tests/test_warcprox.py @@ -1395,6 +1395,23 @@ def test_controller_with_defaults(): assert not wwt.writer_pool.default_warc_writer.record_builder.base32 assert wwt.writer_pool.default_warc_writer.record_builder.digest_algorithm == 'sha1' +def test_load_plugin(): + options = warcprox.Options() + options.plugins = ['warcprox.stats.RunningStats'] + controller = warcprox.controller.WarcproxController(options) + assert isinstance( + controller._postfetch_chain[-1], + warcprox.ListenerPostfetchProcessor) + assert isinstance( + controller._postfetch_chain[-1].listener, + warcprox.stats.RunningStats) + assert isinstance( + controller._postfetch_chain[-2], + warcprox.ListenerPostfetchProcessor) + assert isinstance( + controller._postfetch_chain[-2].listener, + warcprox.stats.RunningStats) + def test_choose_a_port_for_me(warcprox_): options = warcprox.Options() options.port = 0 diff --git a/warcprox/controller.py b/warcprox/controller.py index 0ccb1d7..dfd930b 100644 --- a/warcprox/controller.py +++ b/warcprox/controller.py @@ -97,7 +97,7 @@ class Factory: (module_name, class_name) = qualname.rsplit('.', 1) module_ = importlib.import_module(module_name) class_ = getattr(module_, class_name) - listener = class_() + plugin = class_() plugin.notify # make sure it has this method return plugin except Exception as e: