diff --git a/swh/storage/tests/storage_testing.py b/swh/storage/tests/storage_testing.py index aa2d7d39..83da8cfe 100644 --- a/swh/storage/tests/storage_testing.py +++ b/swh/storage/tests/storage_testing.py @@ -1,62 +1,62 @@ # Copyright (C) 2015-2017 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information import os import tempfile from swh.storage import get_storage from swh.core.db.tests.db_testing import SingleDbTestFixture from swh.storage.tests import SQL_DIR class StorageTestFixture(SingleDbTestFixture): """Mix this in a test subject class to get Storage testing support. This fixture requires to come before SingleDbTestFixture in the inheritance list as it uses its methods to setup its own internal database. Usage example: class MyTestStorage(StorageTestFixture, unittest.TestCase): ... """ TEST_DB_NAME = 'softwareheritage-test-storage' TEST_DB_DUMP = os.path.join(SQL_DIR, '*.sql') def setUp(self): super().setUp() self.objtmp = tempfile.TemporaryDirectory() self.storage_config = { 'cls': 'local', 'args': { 'db': 'dbname=%s' % self.TEST_DB_NAME, 'objstorage': { 'cls': 'pathslicing', 'args': { 'root': self.objtmp.name, 'slicing': '0:1/1:5', }, }, 'journal_writer': { - 'cls': 'inmemory', + 'cls': 'memory', }, }, } self.storage = get_storage(**self.storage_config) self.journal_writer = self.storage.journal_writer def tearDown(self): self.objtmp.cleanup() self.storage = None super().tearDown() def reset_storage(self): excluded = {'dbversion', 'tool'} self.reset_db_tables(self.TEST_DB_NAME, excluded=excluded) self.journal_writer.objects[:] = [] diff --git a/swh/storage/tests/test_api_client.py b/swh/storage/tests/test_api_client.py index 31cd3bb2..88fab79c 100644 --- a/swh/storage/tests/test_api_client.py +++ b/swh/storage/tests/test_api_client.py @@ -1,146 +1,146 @@ # Copyright (C) 2015-2018 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information import shutil import tempfile import unittest import pytest from swh.core.api.tests.server_testing import ServerTestFixture from swh.journal.writer import get_journal_writer from swh.storage.api.client import RemoteStorage import swh.storage.api.server as server from swh.storage.api.server import app from swh.storage.in_memory import Storage as InMemoryStorage import swh.storage.storage from swh.storage.tests.test_storage import \ CommonTestStorage, CommonPropTestStorage, StorageTestDbFixture class RemotePgStorageFixture(StorageTestDbFixture, ServerTestFixture, unittest.TestCase): def setUp(self): - journal_writer = get_journal_writer(cls='inmemory') + journal_writer = get_journal_writer(cls='memory') def mock_get_journal_writer(cls, args=None): - assert cls == 'inmemory' + assert cls == 'memory' return journal_writer self.journal_writer = journal_writer server.storage = None self.get_journal_writer = get_journal_writer swh.storage.storage.get_journal_writer = mock_get_journal_writer # ServerTestFixture needs to have self.objroot for # setUp() method, but this field is defined in # AbstractTestStorage's setUp() # To avoid confusion, override the self.objroot to a # one chosen in this class. self.storage_base = tempfile.mkdtemp() self.objroot = self.storage_base self.config = { 'storage': { 'cls': 'local', 'args': { 'db': 'dbname=%s' % self.TEST_DB_NAME, 'objstorage': { 'cls': 'pathslicing', 'args': { 'root': self.storage_base, 'slicing': '0:2', }, }, 'journal_writer': { - 'cls': 'inmemory', + 'cls': 'memory', } } } } self.app = app super().setUp() self.storage = RemoteStorage(self.url()) def tearDown(self): super().tearDown() shutil.rmtree(self.storage_base) swh.storage.storage.get_journal_writer = self.get_journal_writer def reset_storage(self): excluded = {'dbversion', 'tool'} self.reset_db_tables(self.TEST_DB_NAME, excluded=excluded) self.journal_writer.objects[:] = [] class RemoteMemStorageFixture(ServerTestFixture, unittest.TestCase): def setUp(self): self.config = { 'storage': { 'cls': 'memory', 'args': { 'journal_writer': { - 'cls': 'inmemory', + 'cls': 'memory', } } } } self.__storage = InMemoryStorage( - journal_writer={'cls': 'inmemory'}) + journal_writer={'cls': 'memory'}) self._get_storage_patcher = unittest.mock.patch( 'swh.storage.api.server.get_storage', return_value=self.__storage) self._get_storage_patcher.start() self.app = app super().setUp() self.storage = RemoteStorage(self.url()) self.journal_writer = self.__storage.journal_writer def tearDown(self): super().tearDown() self._get_storage_patcher.stop() def reset_storage(self): self.storage.reset() self.journal_writer.objects[:] = [] @pytest.mark.network class TestRemoteMemStorage(CommonTestStorage, RemoteMemStorageFixture): @pytest.mark.skip('refresh_stat_counters not available in the remote api.') def test_stat_counters(self): pass @pytest.mark.skip('postgresql-specific test') def test_content_add_db(self): pass @pytest.mark.skip('postgresql-specific test') def test_skipped_content_add_db(self): pass @pytest.mark.skip('postgresql-specific test') def test_content_add_metadata_db(self): pass @pytest.mark.skip( 'not implemented, see https://forge.softwareheritage.org/T1633') def test_skipped_content_add(self): pass @pytest.mark.db @pytest.mark.network class TestRemotePgStorage(CommonTestStorage, RemotePgStorageFixture): @pytest.mark.skip('refresh_stat_counters not available in the remote api.') def test_stat_counters(self): pass @pytest.mark.db @pytest.mark.property_based class PropTestRemotePgStorage(CommonPropTestStorage, RemotePgStorageFixture): @pytest.mark.skip('too slow') def test_add_arbitrary(self): pass diff --git a/swh/storage/tests/test_in_memory.py b/swh/storage/tests/test_in_memory.py index 79c264d7..67cdb845 100644 --- a/swh/storage/tests/test_in_memory.py +++ b/swh/storage/tests/test_in_memory.py @@ -1,78 +1,78 @@ # Copyright (C) 2018 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information import unittest import pytest from swh.storage.in_memory import Storage, ENABLE_ORIGIN_IDS from swh.storage.tests.test_storage import \ CommonTestStorage, CommonPropTestStorage class TestInMemoryStorage(CommonTestStorage, unittest.TestCase): """Test the in-memory storage API This class doesn't define any tests as we want identical functionality between local and remote storage. All the tests are therefore defined in CommonTestStorage. """ _test_origin_ids = ENABLE_ORIGIN_IDS def setUp(self): super().setUp() self.reset_storage() @pytest.mark.skip('postgresql-specific test') def test_content_add_db(self): pass @pytest.mark.skip('postgresql-specific test') def test_skipped_content_add_db(self): pass @pytest.mark.skip('postgresql-specific test') def test_content_add_metadata_db(self): pass if not _test_origin_ids: @pytest.mark.skip('requires origin ids') def test_origin_metadata_add(self): pass @pytest.mark.skip('requires origin ids') def test_origin_metadata_get(self): pass @pytest.mark.skip('requires origin ids') def test_origin_metadata_get_by_provider_type(self): pass def reset_storage(self): - self.storage = Storage(journal_writer={'cls': 'inmemory'}) + self.storage = Storage(journal_writer={'cls': 'memory'}) self.journal_writer = self.storage.journal_writer @pytest.mark.property_based class PropTestInMemoryStorage(CommonPropTestStorage, unittest.TestCase): """Test the in-memory storage API This class doesn't define any tests as we want identical functionality between local and remote storage. All the tests are therefore defined in CommonPropTestStorage. """ _test_origin_ids = ENABLE_ORIGIN_IDS def setUp(self): super().setUp() self.storage = Storage() def reset_storage(self): self.storage = Storage() if not _test_origin_ids: @pytest.mark.skip('requires origin ids') def test_origin_get_range(self, new_origins): pass