Page MenuHomeSoftware Heritage

Jenkins > .tox.py3.lib.python3.7.site-packages.swh.storage.tests.test_tenacious.TestTenaciousStorage::test_content_find_with_duplicate_sha256
Failed

TEST RESULT

Run At
Sep 15 2021, 3:20 PM
Details
self = <swh.storage.tests.test_tenacious.TestTenaciousStorage object at 0x7f0036afdf28> swh_storage = <swh.storage.proxies.tenacious.TenaciousProxyStorage object at 0x7f0036afdda0> sample_data = <swh.storage.tests.storage_data.StorageData object at 0x7f0036afd550> def test_content_find_with_duplicate_sha256(self, swh_storage, sample_data): content = sample_data.content hashes = {} # Create fake data with colliding sha256 for hashalgo in ("sha1", "sha1_git", "blake2s256"): value = bytearray(getattr(content, hashalgo)) value[0] += 1 hashes[hashalgo] = bytes(value) duplicated_content = attr.evolve( content, sha1=hashes["sha1"], sha1_git=hashes["sha1_git"], blake2s256=hashes["blake2s256"], ) swh_storage.content_add([content, duplicated_content]) > actual_result = swh_storage.content_find({"sha256": duplicated_content.sha256}) .tox/py3/lib/python3.7/site-packages/swh/storage/tests/storage_tests.py:3830: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .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:349: in content_find return self._content_find_many([content]) .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 0x7f0036afd940> 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'] 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