def test_idle_connection_manager(mocker): t = mocker.patch.object(time, 'time') t.return_value = 0 idle = IdleConnectionManager(100) assert idle.next_check_ms() == float('inf') idle.update('foo') assert not idle.is_expired('foo') assert idle.poll_expired_connection() is None assert idle.next_check_ms() == 100 t.return_value = 90 / 1000 assert not idle.is_expired('foo') assert idle.poll_expired_connection() is None assert idle.next_check_ms() == 10 t.return_value = 100 / 1000 assert idle.is_expired('foo') assert idle.next_check_ms() == 0 conn_id, conn_ts = idle.poll_expired_connection() assert conn_id == 'foo' assert conn_ts == 0 idle.remove('foo') assert idle.next_check_ms() == float('inf')