Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/algos/test_origin.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 | ||||
from unittest.mock import patch | from unittest.mock import patch | ||||
from swh.storage.in_memory import InMemoryStorage | from swh.storage import get_storage | ||||
from swh.storage.algos.origin import iter_origins | from swh.storage.algos.origin import iter_origins | ||||
def assert_list_eq(left, right, msg=None): | def assert_list_eq(left, right, msg=None): | ||||
assert list(left) == list(right), msg | assert list(left) == list(right), msg | ||||
storage_config = { | |||||
'cls': 'validate', | |||||
'storage': { | |||||
'cls': 'memory', | |||||
} | |||||
} | |||||
def test_iter_origins(): | def test_iter_origins(): | ||||
storage = InMemoryStorage() | storage = get_storage(**storage_config) | ||||
origins = storage.origin_add([ | origins = storage.origin_add([ | ||||
{'url': 'bar'}, | {'url': 'bar'}, | ||||
{'url': 'qux'}, | {'url': 'qux'}, | ||||
{'url': 'quuz'}, | {'url': 'quuz'}, | ||||
]) | ]) | ||||
assert_list_eq(iter_origins(storage), origins) | assert_list_eq(iter_origins(storage), origins) | ||||
assert_list_eq(iter_origins(storage, batch_size=1), origins) | assert_list_eq(iter_origins(storage, batch_size=1), origins) | ||||
assert_list_eq(iter_origins(storage, batch_size=2), origins) | assert_list_eq(iter_origins(storage, batch_size=2), origins) | ||||
Show All 31 Lines | for i in range(1, 5): | ||||
iter_origins( | iter_origins( | ||||
storage, origin_from=i+1, origin_to=j+1, batch_size=2), | storage, origin_from=i+1, origin_to=j+1, batch_size=2), | ||||
origins[i:j], | origins[i:j], | ||||
(i, j)) | (i, j)) | ||||
@patch('swh.storage.in_memory.InMemoryStorage.origin_get_range') | @patch('swh.storage.in_memory.InMemoryStorage.origin_get_range') | ||||
def test_iter_origins_batch_size(mock_origin_get_range): | def test_iter_origins_batch_size(mock_origin_get_range): | ||||
storage = InMemoryStorage() | storage = get_storage(**storage_config) | ||||
mock_origin_get_range.return_value = [] | mock_origin_get_range.return_value = [] | ||||
list(iter_origins(storage)) | list(iter_origins(storage)) | ||||
mock_origin_get_range.assert_called_with( | mock_origin_get_range.assert_called_with( | ||||
origin_from=1, origin_count=10000) | origin_from=1, origin_count=10000) | ||||
list(iter_origins(storage, batch_size=42)) | list(iter_origins(storage, batch_size=42)) | ||||
mock_origin_get_range.assert_called_with( | mock_origin_get_range.assert_called_with( | ||||
origin_from=1, origin_count=42) | origin_from=1, origin_count=42) |