def test_increments_all(backend: ViewsStorageBackend): increments = { "key_a": random.randint(1, 10), "key_b": random.randint(1, 10), "key_c": random.randint(1, 10), } for key, count in increments.items(): for _ in range(count): backend.increment(key) assert backend.most_common(len(increments)) == increments assert backend.most_common(len(increments) + 1) == increments
def stats(storage: ViewsStorageBackend): counts: dict[str, int] = storage.most_common(10) AVERAGE_TOP_HITS.set(sum(counts.values()) / len(counts) if counts else 0) TOP_PAGE.info({"top": max(counts, default="n/a", key=lambda x: counts[x])}) return counts
def test_increments_top(backend: ViewsStorageBackend): increments = { "key_a": random.randint(1, 10), "key_b": random.randint(1, 10), "key_c": random.randint(1, 10), "key_d": random.randint(1, 10), } for key, count in increments.items(): for _ in range(count): backend.increment(key) assert len(backend.most_common(1)) == 1 assert len(backend.most_common(2)) == 2 assert len(backend.most_common(3)) == 3 top2_values = backend.most_common(2).values() assert list(top2_values) == (sorted(increments.values(), reverse=True)[:2])
def stats(storage: ViewsStorageBackend): return storage.most_common(10)
def test_empty_backend(backend: ViewsStorageBackend, n: int): assert backend.most_common(n) == {}