mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-09 02:54:09 +00:00
test active_server_limit
This commit is contained in:
@@ -584,10 +584,69 @@ def test_spawn_limit(app, no_patience, slow_spawn, request):
|
|||||||
for u in users:
|
for u in users:
|
||||||
r = yield api_request(app, 'users', u.name, 'server', method='delete')
|
r = yield api_request(app, 'users', u.name, 'server', method='delete')
|
||||||
yield r.raise_for_status()
|
yield r.raise_for_status()
|
||||||
while any(u.running('') for u in users):
|
while any(u.spawner.active for u in users):
|
||||||
yield gen.sleep(0.1)
|
yield gen.sleep(0.1)
|
||||||
|
|
||||||
|
|
||||||
|
@mark.gen_test
|
||||||
|
def test_active_server_limit(app, request):
|
||||||
|
db = app.db
|
||||||
|
settings = app.tornado_application.settings
|
||||||
|
settings['active_server_limit'] = 2
|
||||||
|
def _restore_limit():
|
||||||
|
settings['active_server_limit'] = 0
|
||||||
|
request.addfinalizer(_restore_limit)
|
||||||
|
|
||||||
|
# start two pending spawns
|
||||||
|
names = ['ykka', 'hjarka']
|
||||||
|
users = [ add_user(db, app=app, name=name) for name in names ]
|
||||||
|
for name in names:
|
||||||
|
r = yield api_request(app, 'users', name, 'server', method='post')
|
||||||
|
r.raise_for_status()
|
||||||
|
counts = app.users.count_active_users()
|
||||||
|
assert counts['active'] == 2
|
||||||
|
assert counts['ready'] == 2
|
||||||
|
assert counts['pending'] == 0
|
||||||
|
|
||||||
|
# ykka and hjarka's servers are running. Essun should fail with 429
|
||||||
|
name = 'essun'
|
||||||
|
user = add_user(db, app=app, name=name)
|
||||||
|
r = yield api_request(app, 'users', name, 'server', method='post')
|
||||||
|
assert r.status_code == 429
|
||||||
|
counts = app.users.count_active_users()
|
||||||
|
assert counts['active'] == 2
|
||||||
|
assert counts['ready'] == 2
|
||||||
|
assert counts['pending'] == 0
|
||||||
|
|
||||||
|
# stop one server
|
||||||
|
yield api_request(app, 'users', names[0], 'server', method='delete')
|
||||||
|
counts = app.users.count_active_users()
|
||||||
|
assert counts['active'] == 1
|
||||||
|
assert counts['ready'] == 1
|
||||||
|
assert counts['pending'] == 0
|
||||||
|
|
||||||
|
r = yield api_request(app, 'users', name, 'server', method='post')
|
||||||
|
r.raise_for_status()
|
||||||
|
counts = app.users.count_active_users()
|
||||||
|
assert counts['active'] == 2
|
||||||
|
assert counts['ready'] == 2
|
||||||
|
assert counts['pending'] == 0
|
||||||
|
users.append(user)
|
||||||
|
|
||||||
|
# everybody's running, pending count should be back to 0
|
||||||
|
assert app.users.count_active_users()['pending'] == 0
|
||||||
|
for u in users:
|
||||||
|
if not u.spawner.active:
|
||||||
|
continue
|
||||||
|
r = yield api_request(app, 'users', u.name, 'server', method='delete')
|
||||||
|
r.raise_for_status()
|
||||||
|
|
||||||
|
counts = app.users.count_active_users()
|
||||||
|
assert counts['active'] == 0
|
||||||
|
assert counts['ready'] == 0
|
||||||
|
assert counts['pending'] == 0
|
||||||
|
|
||||||
|
|
||||||
@mark.gen_test
|
@mark.gen_test
|
||||||
def test_get_proxy(app):
|
def test_get_proxy(app):
|
||||||
r = yield api_request(app, 'proxy')
|
r = yield api_request(app, 'proxy')
|
||||||
|
Reference in New Issue
Block a user