コード例 #1
0
 async def test_lock_cancels_existing_task(self):
     with rate_limits.ManualRateLimiter() as limiter:
         limiter.throttle_task = asyncio.get_running_loop().create_future()
         old_task = limiter.throttle_task
         limiter.throttle(0)
         assert old_task.cancelled()
         assert old_task is not limiter.throttle_task
コード例 #2
0
 async def test_throttle_chews_queue_completing_futures(self, event_loop):
     with rate_limits.ManualRateLimiter() as limiter:
         futures = [event_loop.create_future() for _ in range(10)]
         limiter.queue = list(futures)
         await limiter.unlock_later(0.01)
         for i, future in enumerate(futures):
             assert future.done(), f"future {i} was not done"
コード例 #3
0
 async def test_acquire_places_future_on_queue_if_lock_task_is_not_None(
         self):
     with rate_limits.ManualRateLimiter() as limiter:
         limiter.throttle_task = asyncio.get_running_loop().create_future()
         assert len(limiter.queue) == 0
         future = limiter.acquire()
         assert len(limiter.queue) == 1
         assert future in limiter.queue
         assert not future.done()
コード例 #4
0
ファイル: test_rate_limits.py プロジェクト: hikari-py/hikari
    async def test_acquire_returns_incomplete_future_if_throttle_task_is_not_None(
            self, event_loop):
        with rate_limits.ManualRateLimiter() as limiter:
            limiter.throttle_task = event_loop.create_future()
            future = MockFuture()
            event_loop.create_future = mock.Mock(return_value=future)

            await limiter.acquire()
            future.set_result.assert_not_called()
コード例 #5
0
ファイル: test_rate_limits.py プロジェクト: hikari-py/hikari
    async def test_acquire_places_future_on_queue_if_throttle_task_is_not_None(
            self, event_loop):
        with rate_limits.ManualRateLimiter() as limiter:
            limiter.throttle_task = event_loop.create_future()
            future = MockFuture()
            event_loop.create_future = mock.Mock(return_value=future)

            assert len(limiter.queue) == 0

            await limiter.acquire()

            assert len(limiter.queue) == 1
            assert future in limiter.queue
            future.set_result.assert_not_called()
コード例 #6
0
 async def test_throttle_clears_throttle_task(self, event_loop):
     with rate_limits.ManualRateLimiter() as limiter:
         limiter.throttle_task = event_loop.create_future()
         await limiter.unlock_later(0)
     assert limiter.throttle_task is None
コード例 #7
0
 async def test_acquire_returns_incomplete_future_if_lock_task_is_not_None(
         self):
     with rate_limits.ManualRateLimiter() as limiter:
         limiter.throttle_task = asyncio.get_running_loop().create_future()
         future = limiter.acquire()
         assert not future.done()
コード例 #8
0
 async def test_acquire_returns_completed_future_if_lock_task_is_None(self):
     with rate_limits.ManualRateLimiter() as limiter:
         limiter.throttle_task = None
         future = limiter.acquire()
         assert future.done()