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 track(storage: ViewsStorageBackend): try: referer = request.headers["Referer"] except KeyError: return Response(status=HTTPStatus.BAD_REQUEST) storage.increment(referer) return Response(PIXEL, headers={ "Content-Type": "image/gif", "Expires": "Mon, 01 Jan 1990 00:00:00 GMT", "Cache-Control": "no-cache, no-store, must-revalidate", "Pragma": "no-cache", })
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])