diff --git a/swh/loader/core/loader.py b/swh/loader/core/loader.py --- a/swh/loader/core/loader.py +++ b/swh/loader/core/loader.py @@ -31,6 +31,7 @@ "max_content_size": 100 * 1024 * 1024, "save_data": False, "save_data_path": "", + "storage": {"cls": "memory"}, } @@ -70,9 +71,14 @@ """ def __init__( - self, logging_class: Optional[str] = None, + self, + logging_class: Optional[str] = None, + config: Optional[Dict[str, Any]] = None, ): - self.config = load_from_envvar(DEFAULT_CONFIG) + if config: + self.config = config + else: + self.config = load_from_envvar(DEFAULT_CONFIG) self.storage = get_storage(**self.config["storage"]) diff --git a/swh/loader/core/tests/test_loader.py b/swh/loader/core/tests/test_loader.py --- a/swh/loader/core/tests/test_loader.py +++ b/swh/loader/core/tests/test_loader.py @@ -7,7 +7,7 @@ import hashlib import logging -from swh.loader.core.loader import BaseLoader, DVCSLoader +from swh.loader.core.loader import DEFAULT_CONFIG, BaseLoader, DVCSLoader from swh.loader.tests import assert_last_visit_matches from swh.model.model import Origin, OriginVisit, Snapshot @@ -81,12 +81,24 @@ assert result == {"status": "eventful"} +def test_base_loader_with_config(swh_config): + loader = DummyBaseLoader("logger-name", DEFAULT_CONFIG) + result = loader.load() + assert result == {"status": "eventful"} + + def test_dvcs_loader(swh_config): loader = DummyDVCSLoader() result = loader.load() assert result == {"status": "eventful"} +def test_dvcs_loader_with_config(swh_config): + loader = DummyDVCSLoader("another-logger", DEFAULT_CONFIG) + result = loader.load() + assert result == {"status": "eventful"} + + def test_loader_logger_default_name(swh_config): loader = DummyBaseLoader() assert isinstance(loader.log, logging.Logger)