Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/test_init.py
# Copyright (C) 2019 The Software Heritage developers | # Copyright (C) 2019 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 pytest | import pytest | ||||
from unittest.mock import patch | from unittest.mock import patch | ||||
from swh.storage import get_storage | from swh.storage import get_storage | ||||
from swh.storage.api.client import RemoteStorage | from swh.storage.api.client import RemoteStorage | ||||
from swh.storage.storage import Storage as DbStorage | from swh.storage.storage import Storage as DbStorage | ||||
from swh.storage.in_memory import Storage as MemoryStorage | from swh.storage.in_memory import Storage as MemoryStorage | ||||
from swh.storage.buffer import BufferingProxyStorage | from swh.storage.buffer import BufferingProxyStorage | ||||
from swh.storage.filter import FilteringProxyStorage | from swh.storage.filter import FilteringProxyStorage | ||||
from swh.storage.retry import RetryingProxyStorage | |||||
@patch('swh.storage.storage.psycopg2.pool') | @patch('swh.storage.storage.psycopg2.pool') | ||||
def test_get_storage(mock_pool): | def test_get_storage(mock_pool): | ||||
"""Instantiating an existing storage should be ok | """Instantiating an existing storage should be ok | ||||
""" | """ | ||||
mock_pool.ThreadedConnectionPool.return_value = None | mock_pool.ThreadedConnectionPool.return_value = None | ||||
for cls, real_class, dummy_args in [ | for cls, real_class, dummy_args in [ | ||||
('remote', RemoteStorage, {'url': 'url'}), | ('remote', RemoteStorage, {'url': 'url'}), | ||||
('memory', MemoryStorage, {}), | ('memory', MemoryStorage, {}), | ||||
('local', DbStorage, { | ('local', DbStorage, { | ||||
'db': 'postgresql://db', 'objstorage': { | 'db': 'postgresql://db', 'objstorage': { | ||||
'cls': 'memory', 'args': {}, | 'cls': 'memory', 'args': {}, | ||||
}, | }, | ||||
}), | }), | ||||
('filter', FilteringProxyStorage, {'storage': { | ('filter', FilteringProxyStorage, {'storage': { | ||||
'cls': 'memory'} | 'cls': 'memory'} | ||||
}), | }), | ||||
('buffer', BufferingProxyStorage, {'storage': { | ('buffer', BufferingProxyStorage, {'storage': { | ||||
'cls': 'memory'} | 'cls': 'memory'} | ||||
}), | }), | ||||
('retry', RetryingProxyStorage, {'storage': { | |||||
'cls': 'memory'} | |||||
}), | |||||
]: | ]: | ||||
actual_storage = get_storage(cls, **dummy_args) | actual_storage = get_storage(cls, **dummy_args) | ||||
assert actual_storage is not None | assert actual_storage is not None | ||||
assert isinstance(actual_storage, real_class) | assert isinstance(actual_storage, real_class) | ||||
@patch('swh.storage.storage.psycopg2.pool') | @patch('swh.storage.storage.psycopg2.pool') | ||||
def test_get_storage_legacy_args(mock_pool): | def test_get_storage_legacy_args(mock_pool): | ||||
▲ Show 20 Lines • Show All 87 Lines • Show Last 20 Lines |