Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/test_api_client.py
Show All 15 Lines | |||||
from swh.storage.in_memory import Storage as InMemoryStorage | from swh.storage.in_memory import Storage as InMemoryStorage | ||||
from swh.storage.api.client import RemoteStorage | from swh.storage.api.client import RemoteStorage | ||||
import swh.storage.api.server as server | import swh.storage.api.server as server | ||||
from swh.storage.api.server import app | from swh.storage.api.server import app | ||||
from swh.storage.tests.test_storage import \ | from swh.storage.tests.test_storage import \ | ||||
CommonTestStorage, CommonPropTestStorage, StorageTestDbFixture | CommonTestStorage, CommonPropTestStorage, StorageTestDbFixture | ||||
class RemoteStorageFixture(ServerTestFixture, | class RemotePgStorageFixture(StorageTestDbFixture, ServerTestFixture, | ||||
unittest.TestCase): | 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 setUp(self): | ||||
def mock_get_journal_writer(cls, args=None): | def mock_get_journal_writer(cls, args=None): | ||||
assert cls == 'inmemory' | assert cls == 'inmemory' | ||||
return journal_writer | return journal_writer | ||||
server.storage = None | server.storage = None | ||||
storage.get_journal_writer = mock_get_journal_writer | storage.get_journal_writer = mock_get_journal_writer | ||||
journal_writer = InMemoryJournalWriter() | journal_writer = InMemoryJournalWriter() | ||||
self.journal_writer = journal_writer | self.journal_writer = journal_writer | ||||
Show All 17 Lines | def setUp(self): | ||||
'slicing': '0:2', | 'slicing': '0:2', | ||||
}, | }, | ||||
}, | }, | ||||
'journal_writer': { | 'journal_writer': { | ||||
'cls': 'inmemory', | 'cls': 'inmemory', | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
douardda: This was done like this before this diff, but I don't really understand why we need to keep a… | |||||
self.app = app | |||||
super().setUp() | super().setUp() | ||||
self.storage = RemoteStorage(self.url()) | |||||
def tearDown(self): | def tearDown(self): | ||||
super().tearDown() | super().tearDown() | ||||
shutil.rmtree(self.storage_base) | shutil.rmtree(self.storage_base) | ||||
storage.get_journal_writer = get_journal_writer | storage.get_journal_writer = get_journal_writer | ||||
class RemoteMemStorageFixture(RemoteStorageFixture): | class RemoteMemStorageFixture(ServerTestFixture, unittest.TestCase): | ||||
def setUp(self): | def setUp(self): | ||||
self.config = { | self.config = { | ||||
'storage': { | 'storage': { | ||||
'cls': 'memory', | 'cls': 'memory', | ||||
'args': { | 'args': { | ||||
'journal_writer': { | 'journal_writer': { | ||||
'cls': 'inmemory', | 'cls': 'inmemory', | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
self.__storage = InMemoryStorage(journal_writer={'cls': 'inmemory'}) | self.__storage = InMemoryStorage(journal_writer={'cls': 'inmemory'}) | ||||
self._get_storage_patcher = unittest.mock.patch( | self._get_storage_patcher = unittest.mock.patch( | ||||
'swh.storage.api.server.get_storage', return_value=self.__storage) | 'swh.storage.api.server.get_storage', return_value=self.__storage) | ||||
self._get_storage_patcher.start() | self._get_storage_patcher.start() | ||||
self.app = app | |||||
super().setUp() | super().setUp() | ||||
self.storage = RemoteStorage(self.url()) | |||||
self.journal_writer = self.__storage.journal_writer | self.journal_writer = self.__storage.journal_writer | ||||
def tearDown(self): | def tearDown(self): | ||||
super().tearDown() | super().tearDown() | ||||
self._get_storage_patcher.stop() | self._get_storage_patcher.stop() | ||||
@pytest.mark.network | @pytest.mark.network | ||||
Show All 37 Lines |
This was done like this before this diff, but I don't really understand why we need to keep a ref on app as a member of the instance...