Replace gen.sleep with asyncio.sleep

This commit is contained in:
Erik Sundell
2020-11-05 03:31:01 +01:00
parent e1166ec834
commit 4a17441e5a
7 changed files with 23 additions and 27 deletions

View File

@@ -1538,7 +1538,7 @@ class UserUrlHandler(BaseHandler):
if redirects:
self.log.warning("Redirect loop detected on %s", self.request.uri)
# add capped exponential backoff where cap is 10s
await gen.sleep(min(1 * (2 ** redirects), 10))
await asyncio.sleep(min(1 * (2 ** redirects), 10))
# rewrite target url with new `redirects` query value
url_parts = urlparse(target)
query_parts = parse_qs(url_parts.query)

View File

@@ -20,7 +20,6 @@ from urllib.parse import urlparse
from jinja2 import ChoiceLoader
from jinja2 import FunctionLoader
from tornado import gen
from tornado import ioloop
from tornado.httpclient import AsyncHTTPClient
from tornado.httpclient import HTTPRequest
@@ -434,7 +433,7 @@ class SingleUserNotebookAppMixin(Configurable):
i,
RETRIES,
)
await gen.sleep(min(2 ** i, 16))
await asyncio.sleep(min(2 ** i, 16))
else:
break
else:

View File

@@ -36,7 +36,6 @@ from unittest import mock
from urllib.parse import urlparse
from pamela import PAMError
from tornado import gen
from tornado.ioloop import IOLoop
from traitlets import Bool
from traitlets import default
@@ -114,11 +113,11 @@ class SlowSpawner(MockSpawner):
if self._start_future is not None:
await self._start_future
else:
await gen.sleep(self.delay)
await asyncio.sleep(self.delay)
return ip, port
async def stop(self):
await gen.sleep(self.delay)
await asyncio.sleep(self.delay)
await super().stop()

View File

@@ -613,7 +613,7 @@ async def test_slow_spawn(app, no_patience, slow_spawn):
async def wait_spawn():
while not app_user.running:
await gen.sleep(0.1)
await asyncio.sleep(0.1)
await wait_spawn()
assert not app_user.spawner._spawn_pending
@@ -622,7 +622,7 @@ async def test_slow_spawn(app, no_patience, slow_spawn):
async def wait_stop():
while app_user.spawner._stop_pending:
await gen.sleep(0.1)
await asyncio.sleep(0.1)
r = await api_request(app, 'users', name, 'server', method='delete')
r.raise_for_status()
@@ -656,7 +656,7 @@ async def test_never_spawn(app, no_patience, never_spawn):
assert app.users.count_active_users()['pending'] == 1
while app_user.spawner.pending:
await gen.sleep(0.1)
await asyncio.sleep(0.1)
print(app_user.spawner.pending)
assert not app_user.spawner._spawn_pending
@@ -682,7 +682,7 @@ async def test_slow_bad_spawn(app, no_patience, slow_bad_spawn):
r = await api_request(app, 'users', name, 'server', method='post')
r.raise_for_status()
while user.spawner.pending:
await gen.sleep(0.1)
await asyncio.sleep(0.1)
# spawn failed
assert not user.running
assert app.users.count_active_users()['pending'] == 0
@@ -824,7 +824,7 @@ async def progress_forever():
for i in range(1, 10):
await yield_({'progress': i, 'message': 'Stage %s' % i})
# wait a long time before the next event
await gen.sleep(10)
await asyncio.sleep(10)
if sys.version_info >= (3, 6):
@@ -840,7 +840,7 @@ async def progress_forever_native():
'message': 'Stage %s' % i,
}
# wait a long time before the next event
await gen.sleep(10)
await asyncio.sleep(10)
""",
globals(),
)
@@ -902,7 +902,7 @@ async def test_spawn_limit(app, no_patience, slow_spawn, request):
users[0].spawner._start_future.set_result(None)
# wait for ykka to finish
while not users[0].running:
await gen.sleep(0.1)
await asyncio.sleep(0.1)
assert app.users.count_active_users()['pending'] == 1
r = await api_request(app, 'users', name, 'server', method='post')
@@ -913,7 +913,7 @@ async def test_spawn_limit(app, no_patience, slow_spawn, request):
for user in users[1:]:
user.spawner._start_future.set_result(None)
while not all(u.running for u in users):
await gen.sleep(0.1)
await asyncio.sleep(0.1)
# everybody's running, pending count should be back to 0
assert app.users.count_active_users()['pending'] == 0
@@ -922,7 +922,7 @@ async def test_spawn_limit(app, no_patience, slow_spawn, request):
r = await api_request(app, 'users', u.name, 'server', method='delete')
r.raise_for_status()
while any(u.spawner.active for u in users):
await gen.sleep(0.1)
await asyncio.sleep(0.1)
@mark.slow
@@ -1000,7 +1000,7 @@ async def test_start_stop_race(app, no_patience, slow_spawn):
r = await api_request(app, 'users', user.name, 'server', method='delete')
assert r.status_code == 400
while not spawner.ready:
await gen.sleep(0.1)
await asyncio.sleep(0.1)
spawner.delay = 3
# stop the spawner
@@ -1008,7 +1008,7 @@ async def test_start_stop_race(app, no_patience, slow_spawn):
assert r.status_code == 202
assert spawner.pending == 'stop'
# make sure we get past deleting from the proxy
await gen.sleep(1)
await asyncio.sleep(1)
# additional stops while stopping shouldn't trigger a new stop
with mock.patch.object(spawner, 'stop') as m:
r = await api_request(app, 'users', user.name, 'server', method='delete')
@@ -1020,7 +1020,7 @@ async def test_start_stop_race(app, no_patience, slow_spawn):
assert r.status_code == 400
while spawner.active:
await gen.sleep(0.1)
await asyncio.sleep(0.1)
# start after stop is okay
r = await api_request(app, 'users', user.name, 'server', method='post')
assert r.status_code == 202

View File

@@ -8,7 +8,6 @@ from urllib.parse import urlparse
import pytest
from bs4 import BeautifulSoup
from tornado import gen
from tornado.escape import url_escape
from tornado.httputil import url_concat

View File

@@ -1,6 +1,7 @@
"""Tests for process spawning"""
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
import asyncio
import logging
import os
import signal
@@ -12,7 +13,6 @@ from unittest import mock
from urllib.parse import urlparse
import pytest
from tornado import gen
from .. import orm
from .. import spawner as spawnermod
@@ -123,7 +123,7 @@ async def test_stop_spawner_sigint_fails(db):
await spawner.start()
# wait for the process to get to the while True: loop
await gen.sleep(1)
await asyncio.sleep(1)
status = await spawner.poll()
assert status is None
@@ -138,7 +138,7 @@ async def test_stop_spawner_stop_now(db):
await spawner.start()
# wait for the process to get to the while True: loop
await gen.sleep(1)
await asyncio.sleep(1)
status = await spawner.poll()
assert status is None
@@ -165,7 +165,7 @@ async def test_spawner_poll(db):
spawner.start_polling()
# wait for the process to get to the while True: loop
await gen.sleep(1)
await asyncio.sleep(1)
status = await spawner.poll()
assert status is None
@@ -173,12 +173,12 @@ async def test_spawner_poll(db):
proc.terminate()
for i in range(10):
if proc.poll() is None:
await gen.sleep(1)
await asyncio.sleep(1)
else:
break
assert proc.poll() is not None
await gen.sleep(2)
await asyncio.sleep(2)
status = await spawner.poll()
assert status is not None

View File

@@ -24,7 +24,6 @@ from async_generator import aclosing
from async_generator import async_generator
from async_generator import asynccontextmanager
from async_generator import yield_
from tornado import gen
from tornado import ioloop
from tornado import web
from tornado.httpclient import AsyncHTTPClient
@@ -175,7 +174,7 @@ async def exponential_backoff(
dt = min(max_wait, remaining, random.uniform(0, start_wait * scale))
if dt < max_wait:
scale *= scale_factor
await gen.sleep(dt)
await asyncio.sleep(dt)
raise TimeoutError(fail_message)