diff --git a/jupyterhub/tests/test_orm.py b/jupyterhub/tests/test_orm.py index eea53c30..33ffc203 100644 --- a/jupyterhub/tests/test_orm.py +++ b/jupyterhub/tests/test_orm.py @@ -42,9 +42,10 @@ def test_server(db): def test_user(db): - user = User(orm.User(name='kaylee')) - db.add(user) + orm_user = orm.User(name='kaylee') + db.add(orm_user) db.commit() + user = User(orm_user) spawner = user.spawners[''] spawner.orm_spawner.state = {'pid': 4234} assert user.name == 'kaylee' @@ -164,13 +165,13 @@ def test_spawn_fails(db): @gen.coroutine def start(self): raise RuntimeError("Split the party") - + user = User(orm_user, { 'spawner_class': BadSpawner, 'config': None, 'statsd': EmptyClass(), }) - + with pytest.raises(RuntimeError) as exc: yield user.spawn() assert user.spawners[''].server is None @@ -194,15 +195,16 @@ def test_groups(db): @pytest.mark.gen_test def test_auth_state(db): - user = User(orm.User(name='eve')) - db.add(user.orm_user) + orm_user = orm.User(name='eve') + db.add(orm_user) db.commit() - + user = User(orm_user) + ck = crypto.CryptKeeper.instance() # starts empty assert user.encrypted_auth_state is None - + # can't set auth_state without keys state = {'key': 'value'} ck.keys = [] diff --git a/jupyterhub/user.py b/jupyterhub/user.py index 7e20b3c3..4e908c5f 100644 --- a/jupyterhub/user.py +++ b/jupyterhub/user.py @@ -136,13 +136,10 @@ class User: log = app_log settings = None - def __init__(self, orm_user, settings=None, **kwargs): - self.orm_user = orm_user - self.db = inspect(orm_user).session + def __init__(self, orm_user, settings=None, db=None): + self.db = db or inspect(orm_user).session self.settings = settings or {} - for key, attr in kwargs: - print('setting', key, attr) - setattr(self, key, attr) + self.orm_user = orm_user self.allow_named_servers = self.settings.get('allow_named_servers', False) @@ -225,7 +222,7 @@ class User: @property def spawner(self): return self.spawners[''] - + @spawner.setter def spawner(self, spawner): self.spawners[''] = spawner