Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/test_api_client.py
# Copyright (C) 2015-2018 The Software Heritage developers | # Copyright (C) 2015-2018 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import shutil | import shutil | ||||
import tempfile | import tempfile | ||||
import unittest | import unittest | ||||
import pytest | import pytest | ||||
from swh.core.api.tests.server_testing import ServerTestFixture | from swh.core.api.tests.server_testing import ServerTestFixture | ||||
from swh.journal import writer | from swh.journal.writer import get_journal_writer | ||||
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.in_memory import Storage as InMemoryStorage | |||||
import swh.storage.storage | |||||
from swh.storage.tests.test_storage import \ | from swh.storage.tests.test_storage import \ | ||||
CommonTestStorage, CommonPropTestStorage, StorageTestDbFixture | CommonTestStorage, CommonPropTestStorage, StorageTestDbFixture | ||||
class RemotePgStorageFixture(StorageTestDbFixture, ServerTestFixture, | class RemotePgStorageFixture(StorageTestDbFixture, ServerTestFixture, | ||||
unittest.TestCase): | unittest.TestCase): | ||||
def setUp(self): | def setUp(self): | ||||
journal_writer = writer.get_journal_writer(cls='inmemory') | journal_writer = get_journal_writer(cls='inmemory') | ||||
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 | ||||
self.journal_writer = journal_writer | self.journal_writer = journal_writer | ||||
server.storage = None | server.storage = None | ||||
self.get_journal_writer = writer.get_journal_writer | self.get_journal_writer = get_journal_writer | ||||
writer.get_journal_writer = mock_get_journal_writer | swh.storage.storage.get_journal_writer = mock_get_journal_writer | ||||
# ServerTestFixture needs to have self.objroot for | # ServerTestFixture needs to have self.objroot for | ||||
# setUp() method, but this field is defined in | # setUp() method, but this field is defined in | ||||
# AbstractTestStorage's setUp() | # AbstractTestStorage's setUp() | ||||
# To avoid confusion, override the self.objroot to a | # To avoid confusion, override the self.objroot to a | ||||
# one chosen in this class. | # one chosen in this class. | ||||
self.storage_base = tempfile.mkdtemp() | self.storage_base = tempfile.mkdtemp() | ||||
self.objroot = self.storage_base | self.objroot = self.storage_base | ||||
Show All 17 Lines | def setUp(self): | ||||
} | } | ||||
self.app = app | self.app = app | ||||
super().setUp() | super().setUp() | ||||
self.storage = RemoteStorage(self.url()) | 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) | ||||
writer.get_journal_writer = self.get_journal_writer | swh.storage.storage.get_journal_writer = self.get_journal_writer | ||||
def reset_storage(self): | def reset_storage(self): | ||||
excluded = {'dbversion', 'tool'} | excluded = {'dbversion', 'tool'} | ||||
self.reset_db_tables(self.TEST_DB_NAME, excluded=excluded) | self.reset_db_tables(self.TEST_DB_NAME, excluded=excluded) | ||||
self.journal_writer.objects[:] = [] | self.journal_writer.objects[:] = [] | ||||
class RemoteMemStorageFixture(ServerTestFixture, unittest.TestCase): | class RemoteMemStorageFixture(ServerTestFixture, unittest.TestCase): | ||||
▲ Show 20 Lines • Show All 69 Lines • Show Last 20 Lines |