self = <swh.storage.tests.test_tenacious.TestTenaciousStorage object at 0x7f0041d037b8>
swh_storage = <swh.storage.proxies.tenacious.TenaciousProxyStorage object at 0x7f001b140240>
sample_data = <swh.storage.tests.storage_data.StorageData object at 0x7f0022749400>
def test_directory_ls_non_recursive(self, swh_storage, sample_data):
# create consistent dataset regarding the directories we want to list
content, content2 = sample_data.contents[:2]
swh_storage.content_add([content, content2])
dir1, dir2, dir3, _, dir5 = sample_data.directories[:5]
dir_ids = [d.id for d in [dir1, dir2, dir3, dir5]]
init_missing = list(swh_storage.directory_missing(dir_ids))
assert init_missing == dir_ids
actual_result = swh_storage.directory_add([dir1, dir2, dir3, dir5])
assert actual_result == {"directory:add": 4}
# List directory containing a file and an unknown subdirectory
> actual_data = list(swh_storage.directory_ls(dir1.id))
.tox/py3/lib/python3.7/site-packages/swh/storage/tests/storage_tests.py:791:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/py3/lib/python3.7/site-packages/swh/storage/cassandra/storage.py:619: in directory_ls
yield from self._directory_ls(directory, recursive)
.tox/py3/lib/python3.7/site-packages/swh/storage/cassandra/storage.py:558: in _directory_ls
contents = self._content_find_many([{"sha1_git": row.target} for row in rows])
.tox/py3/lib/python3.7/site-packages/swh/storage/cassandra/storage.py:368: in _content_find_many
for row in rows:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <swh.storage.in_memory.InMemoryStorage object at 0x7f001b140320>
algo = 'sha1_git'
hashes = [b'6\xfa\xdew\x19<\xb6\xd2\xbd\x82aa\xa0\x97\x9dd\xc2\x8a\xb4\xfa']
def _content_get_from_hashes(self, algo, hashes: List[bytes]) -> Iterable:
"""From the name of a hash algorithm and a value of that hash,
looks up the "hash -> token" secondary table (content_by_{algo})
to get tokens.
Then, looks up the main table (content) to get all contents with
that token, and filters out contents whose hash doesn't match."""
found_tokens = list(
self._cql_runner.content_get_tokens_from_single_algo(algo, hashes)
)
assert all(isinstance(token, int) for token in found_tokens)
# Query the main table ('content').
> rows = self._cql_runner.content_get_from_tokens(found_tokens)
E AttributeError: 'InMemoryCqlRunner' object has no attribute 'content_get_from_tokens'
.tox/py3/lib/python3.7/site-packages/swh/storage/cassandra/storage.py:172: AttributeError
TEST RESULT
TEST RESULT
- Run At
- Sep 15 2021, 3:20 PM