Page MenuHomeSoftware Heritage

No OneTemporary

diff --git a/swh/storage/tests/test_api_client.py b/swh/storage/tests/test_api_client.py
index 0879d6be..d52a0e27 100644
--- a/swh/storage/tests/test_api_client.py
+++ b/swh/storage/tests/test_api_client.py
@@ -1,141 +1,143 @@
# 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
import swh.storage.storage as storage
from swh.storage.journal_writer import \
get_journal_writer, InMemoryJournalWriter
from swh.storage.in_memory import Storage as InMemoryStorage
from swh.storage.api.client import RemoteStorage
import swh.storage.api.server as server
from swh.storage.api.server import app
from swh.storage.tests.test_storage import \
CommonTestStorage, CommonPropTestStorage, StorageTestDbFixture
class RemoteStorageFixture(ServerTestFixture,
unittest.TestCase):
"""Test the remote 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.
"""
def setUp(self):
self.app = app
super().setUp()
self.storage = RemoteStorage(self.url())
class RemotePgStorageFixture(StorageTestDbFixture, RemoteStorageFixture):
def setUp(self):
def mock_get_journal_writer(cls, args=None):
assert cls == 'inmemory'
return journal_writer
server.storage = None
storage.get_journal_writer = mock_get_journal_writer
journal_writer = InMemoryJournalWriter()
self.journal_writer = 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',
}
}
}
}
super().setUp()
def tearDown(self):
super().tearDown()
shutil.rmtree(self.storage_base)
storage.get_journal_writer = get_journal_writer
class RemoteMemStorageFixture(RemoteStorageFixture):
def setUp(self):
self.config = {
'storage': {
'cls': 'memory',
'args': {
'journal_writer': {
'cls': 'inmemory',
}
}
}
}
self.__storage = InMemoryStorage(journal_writer={'cls': 'inmemory'})
self._get_storage_patcher = unittest.mock.patch(
'swh.storage.api.server.get_storage', return_value=self.__storage)
self._get_storage_patcher.start()
super().setUp()
self.journal_writer = self.__storage.journal_writer
def tearDown(self):
super().tearDown()
self._get_storage_patcher.stop()
+@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

File Metadata

Mime Type
text/x-diff
Expires
Jul 4 2025, 6:15 PM (4 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3261459

Event Timeline