self = <swh.storage.tests.test_in_memory.TestInMemoryStorage object at 0x7f6c166e1400>
swh_storage = <swh.storage.in_memory.InMemoryStorage object at 0x7f6bb3098358>
sample_data = <swh.storage.tests.storage_data.StorageData object at 0x7f6bd1b24da0>
def test_stat_counters(self, swh_storage, sample_data):
if isinstance(swh_storage, CassandraStorage) and not isinstance(
swh_storage, InMemoryStorage
):
pytest.skip("Cassandra backend does not support stat counters")
origin = sample_data.origin
snapshot = sample_data.snapshot
revision = sample_data.revision
release = sample_data.release
directory = sample_data.directory
content = sample_data.content
expected_keys = ["content", "directory", "origin", "revision"]
# Initially, all counters are 0
swh_storage.refresh_stat_counters()
counters = swh_storage.stat_counters()
assert set(expected_keys) <= set(counters)
for key in expected_keys:
assert counters[key] == 0
# Add a content. Only the content counter should increase.
> swh_storage.content_add([content])
.tox/py3/lib/python3.7/site-packages/swh/storage/tests/storage_tests.py:3681:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.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/metrics.py:77: in d
r = f(*a, **kw)
.tox/py3/lib/python3.7/site-packages/swh/storage/cassandra/storage.py:267: in content_add
return self._content_add(list(contents), with_data=True)
.tox/py3/lib/python3.7/site-packages/swh/storage/cassandra/storage.py:223: in _content_add
for row in rows:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <swh.storage.in_memory.InMemoryStorage object at 0x7f6bb3098358>
algo = 'sha1'
hashes = [b'4\x972t\xcc\xefj\xb4\xdf\xaa\xf8e\x99y/\xa9\xc3\xfeF\x89']
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 = self._cql_runner.content_get_tokens_from_single_algo(
algo, hashes
)
E AttributeError: 'InMemoryCqlRunner' object has no attribute 'content_get_tokens_from_single_algo'
.tox/py3/lib/python3.7/site-packages/swh/storage/cassandra/storage.py:166: AttributeError
TEST RESULT
TEST RESULT
- Run At
- Sep 9 2021, 3:38 PM