self = <swh.storage.tests.test_tenacious.TestTenaciousStorage object at 0x7f0010a739e8>
swh_storage = <swh.storage.proxies.tenacious.TenaciousProxyStorage object at 0x7f0036c68438>
sample_data = <swh.storage.tests.storage_data.StorageData object at 0x7f001b14a550>
algo = 'sha256'
@pytest.mark.parametrize("algo", sorted(DEFAULT_ALGORITHMS))
def test_content_get_missing(self, swh_storage, sample_data, algo):
cont1, cont2 = sample_data.contents[:2]
assert cont1.sha1 != cont2.sha1
missing_cont = sample_data.skipped_content
swh_storage.content_add([cont1, cont2])
actual_contents = swh_storage.content_get(
[getattr(cont1, algo), getattr(cont2, algo), getattr(missing_cont, algo)],
> algo,
)
.tox/py3/lib/python3.7/site-packages/swh/storage/tests/storage_tests.py:673:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/py3/lib/python3.7/site-packages/swh/storage/metrics.py:24: in d
return f(*a, **kw)
.tox/py3/lib/python3.7/site-packages/swh/storage/cassandra/storage.py:338: in content_get
for row in self._content_get_from_hashes(algo, contents):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <swh.storage.in_memory.InMemoryStorage object at 0x7f0036c68b70>
algo = 'sha256'
hashes = [b'\x08Ly\x9c\xd5Q\xdd\x1d\x8d\\_\x9a]Y;.\x93\x1f^6\x12.\xe5\xc7\x93\xc1\xd0\x8a\x19\x83\x9c\xc0', b'\x85\x9f\x0b\x15O...x14io\xc0G\xcd', b'{\xbd\x05*\xb0T\xef",\x1c\x87\xbe`\xcd\x19\x1a\xdd\xed\xd2L\xc8\x82\xd1\xf5\xf7\xf7\xbea\xdca\xbb:']
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