mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-10 19:43:01 +00:00
test native async generator on Python 3.6
This commit is contained in:
@@ -798,15 +798,9 @@ def test_spawn_progress_bad(request, app, no_patience, bad_spawn):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@mark.gen_test
|
@async_generator
|
||||||
def test_spawn_progress_cutoff(request, app, no_patience, slow_spawn):
|
async def progress_forever():
|
||||||
"""Progress events stop when Spawner finishes
|
"""progress function that yields messages forever"""
|
||||||
|
|
||||||
even if progress iterator is still going.
|
|
||||||
"""
|
|
||||||
|
|
||||||
@async_generator
|
|
||||||
async def progress_forever():
|
|
||||||
for i in range(1, 10):
|
for i in range(1, 10):
|
||||||
await yield_({
|
await yield_({
|
||||||
'progress': i,
|
'progress': i,
|
||||||
@@ -815,9 +809,36 @@ def test_spawn_progress_cutoff(request, app, no_patience, slow_spawn):
|
|||||||
# wait a long time before the next event
|
# wait a long time before the next event
|
||||||
await gen.sleep(10)
|
await gen.sleep(10)
|
||||||
|
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 6):
|
||||||
|
# additional progress_forever defined as native
|
||||||
|
# async generator
|
||||||
|
# to test for issues with async_generator wrappers
|
||||||
|
exec("""
|
||||||
|
async def progress_forever_native():
|
||||||
|
for i in range(1, 10):
|
||||||
|
yield {
|
||||||
|
'progress': i,
|
||||||
|
'message': 'Stage %s' % i,
|
||||||
|
}
|
||||||
|
# wait a long time before the next event
|
||||||
|
await gen.sleep(10)
|
||||||
|
""", globals())
|
||||||
|
|
||||||
|
|
||||||
|
@mark.gen_test
|
||||||
|
def test_spawn_progress_cutoff(request, app, no_patience, slow_spawn):
|
||||||
|
"""Progress events stop when Spawner finishes
|
||||||
|
|
||||||
|
even if progress iterator is still going.
|
||||||
|
"""
|
||||||
db = app.db
|
db = app.db
|
||||||
name = 'geddy'
|
name = 'geddy'
|
||||||
app_user = add_user(db, app=app, name=name)
|
app_user = add_user(db, app=app, name=name)
|
||||||
|
if sys.version_info >= (3, 6):
|
||||||
|
# Python >= 3.6, try native async generator
|
||||||
|
app_user.spawner.progress = globals()['progress_forever_native']
|
||||||
|
else:
|
||||||
app_user.spawner.progress = progress_forever
|
app_user.spawner.progress = progress_forever
|
||||||
app_user.spawner.delay = 1
|
app_user.spawner.delay = 1
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user