diff --git a/swh/loader/pypi/loader.py b/swh/loader/pypi/loader.py --- a/swh/loader/pypi/loader.py +++ b/swh/loader/pypi/loader.py @@ -34,8 +34,9 @@ 'debug': ('bool', False), # NOT FOR PRODUCTION } - def __init__(self, client=None): - super().__init__(logging_class='swh.loader.pypi.PyPILoader') + def __init__(self, client=None, config=None): + super().__init__(logging_class='swh.loader.pypi.PyPILoader', + config=config) self.origin_id = None if not client: temp_directory = self.config['temp_directory'] diff --git a/swh/loader/pypi/tests/test_loader.py b/swh/loader/pypi/tests/test_loader.py --- a/swh/loader/pypi/tests/test_loader.py +++ b/swh/loader/pypi/tests/test_loader.py @@ -8,7 +8,7 @@ import pytest -from swh.loader.core.tests import BaseLoaderTest, LoaderNoStorage +from swh.loader.core.tests import BaseLoaderTest from swh.loader.pypi.client import PyPIProject from swh.loader.pypi.loader import PyPILoader from swh.model import hashutil @@ -16,7 +16,7 @@ from .common import RESOURCES_PATH, PyPIClientWithCache -class TestPyPILoader(LoaderNoStorage, PyPILoader): +class TestPyPILoader(PyPILoader): """Real PyPILoader for test purposes (storage and pypi interactions inhibited) @@ -34,7 +34,9 @@ # Will use the pypi with cache client = PyPIClientWithCache( temp_directory=self.temp_dir, cache_dir=RESOURCES_PATH) - super().__init__(client=client) + config = self.parse_config_file() + config['storage'] = {'cls': 'memory', 'args': {}} + super().__init__(client=client, config=config) self.project = PyPIProject( client=client, project=project_name, @@ -81,6 +83,7 @@ dummy_pypi_instance='https://dummy.org'): super().setUp(project_name, dummy_pypi_instance) self.loader = PyPILoaderNoSnapshot(project_name=project_name) + self.storage = self.loader.storage def test_load(self): """Load a pypi origin @@ -111,10 +114,12 @@ self.assertContentsOk(expected_contents) expected_directories = [ - '05219ba38bc542d4345d5638af1ed56c7d43ca7d', - 'cf019eb456cf6f78d8c4674596f1c9a97ece8f44', - 'b178b66bd22383d5f16f4f5c923d39ca798861b4', - 'c3a58f8b57433a4b56caaa5033ae2e0931405338', + {'id': hashutil.hash_to_bytes(id_)} for id_ in [ + '05219ba38bc542d4345d5638af1ed56c7d43ca7d', + 'cf019eb456cf6f78d8c4674596f1c9a97ece8f44', + 'b178b66bd22383d5f16f4f5c923d39ca798861b4', + 'c3a58f8b57433a4b56caaa5033ae2e0931405338', + ] ] self.assertDirectoriesOk(expected_directories) @@ -200,6 +205,7 @@ dummy_pypi_instance='https://dummy.org'): super().setUp(project_name, dummy_pypi_instance) self.loader = PyPILoaderWithSnapshot(project_name=project_name) + self.storage = self.loader.storage def test_load(self): """Load a PyPI origin without new changes results in 1 same snapshot @@ -264,6 +270,7 @@ self.loader = PyPILoaderWithSnapshot( project_name=project_name, json_filename='0805nexter+new-made-up-release.json') + self.storage = self.loader.storage def test_load(self): """Load a PyPI origin with changes results in 1 new snapshot @@ -293,8 +300,10 @@ self.assertContentsOk(expected_contents) expected_directories = [ - 'e226e7e4ad03b4fc1403d69a18ebdd6f2edd2b3a', - '52604d46843b898f5a43208045d09fcf8731631b', + {'id': hashutil.hash_to_bytes(id_)} for id_ in [ + 'e226e7e4ad03b4fc1403d69a18ebdd6f2edd2b3a', + '52604d46843b898f5a43208045d09fcf8731631b', + ] ] self.assertDirectoriesOk(expected_directories) @@ -408,6 +417,7 @@ self.loader = PyPILoaderWithSnapshot2( project_name=project_name, json_filename='0805nexter-unpublished-release.json') + self.storage = self.loader.storage def test_load(self): """Load PyPI origin with removed artifact + changes ~> 1 new snapshot @@ -438,8 +448,10 @@ self.assertContentsOk(expected_contents) expected_directories = [ - 'a2b7621f3e52eb3632657f6e3436bd08202db56f', # new one - '770e21215ecac53cea331d8ea4dc0ffc9d979367', + {'id': hashutil.hash_to_bytes(id_)} for id_ in [ + 'a2b7621f3e52eb3632657f6e3436bd08202db56f', # new one + '770e21215ecac53cea331d8ea4dc0ffc9d979367', + ] ] self.assertDirectoriesOk(expected_directories)