diff --git a/jupyterhub/tests/test_spawner.py b/jupyterhub/tests/test_spawner.py index 2081abc0..1cbf398c 100644 --- a/jupyterhub/tests/test_spawner.py +++ b/jupyterhub/tests/test_spawner.py @@ -81,6 +81,18 @@ async def test_spawner(db, request): assert isinstance(status, int) +def test_spawner_from_db(app, user): + spawner = user.spawners['name'] + user_options = {"test": "value"} + spawner.orm_spawner.user_options = user_options + app.db.commit() + # delete and recreate the spawner from the db + user.spawners.pop('name') + new_spawner = user.spawners['name'] + assert new_spawner.orm_spawner.user_options == user_options + assert new_spawner.user_options == user_options + + async def wait_for_spawner(spawner, timeout=10): """Wait for an http server to show up diff --git a/jupyterhub/user.py b/jupyterhub/user.py index 039f4d11..f44bb10f 100644 --- a/jupyterhub/user.py +++ b/jupyterhub/user.py @@ -376,6 +376,7 @@ class User: oauth_client_id=client_id, cookie_options=self.settings.get('cookie_options', {}), trusted_alt_names=trusted_alt_names, + user_options=orm_spawner.user_options or {}, ) if self.settings.get('internal_ssl'):