fixup test_orm with new User wrapper

user.db is evaluated immediately, rather than on first request,
which means we can't do User(orm.User) before adding the orm.User to the db
This commit is contained in:
Min RK
2018-02-06 17:02:23 +01:00
parent d5f0137052
commit e9573b6e24
2 changed files with 14 additions and 15 deletions

View File

@@ -42,9 +42,10 @@ def test_server(db):
def test_user(db): def test_user(db):
user = User(orm.User(name='kaylee')) orm_user = orm.User(name='kaylee')
db.add(user) db.add(orm_user)
db.commit() db.commit()
user = User(orm_user)
spawner = user.spawners[''] spawner = user.spawners['']
spawner.orm_spawner.state = {'pid': 4234} spawner.orm_spawner.state = {'pid': 4234}
assert user.name == 'kaylee' assert user.name == 'kaylee'
@@ -164,13 +165,13 @@ def test_spawn_fails(db):
@gen.coroutine @gen.coroutine
def start(self): def start(self):
raise RuntimeError("Split the party") raise RuntimeError("Split the party")
user = User(orm_user, { user = User(orm_user, {
'spawner_class': BadSpawner, 'spawner_class': BadSpawner,
'config': None, 'config': None,
'statsd': EmptyClass(), 'statsd': EmptyClass(),
}) })
with pytest.raises(RuntimeError) as exc: with pytest.raises(RuntimeError) as exc:
yield user.spawn() yield user.spawn()
assert user.spawners[''].server is None assert user.spawners[''].server is None
@@ -194,15 +195,16 @@ def test_groups(db):
@pytest.mark.gen_test @pytest.mark.gen_test
def test_auth_state(db): def test_auth_state(db):
user = User(orm.User(name='eve')) orm_user = orm.User(name='eve')
db.add(user.orm_user) db.add(orm_user)
db.commit() db.commit()
user = User(orm_user)
ck = crypto.CryptKeeper.instance() ck = crypto.CryptKeeper.instance()
# starts empty # starts empty
assert user.encrypted_auth_state is None assert user.encrypted_auth_state is None
# can't set auth_state without keys # can't set auth_state without keys
state = {'key': 'value'} state = {'key': 'value'}
ck.keys = [] ck.keys = []

View File

@@ -136,13 +136,10 @@ class User:
log = app_log log = app_log
settings = None settings = None
def __init__(self, orm_user, settings=None, **kwargs): def __init__(self, orm_user, settings=None, db=None):
self.orm_user = orm_user self.db = db or inspect(orm_user).session
self.db = inspect(orm_user).session
self.settings = settings or {} self.settings = settings or {}
for key, attr in kwargs: self.orm_user = orm_user
print('setting', key, attr)
setattr(self, key, attr)
self.allow_named_servers = self.settings.get('allow_named_servers', False) self.allow_named_servers = self.settings.get('allow_named_servers', False)
@@ -225,7 +222,7 @@ class User:
@property @property
def spawner(self): def spawner(self):
return self.spawners[''] return self.spawners['']
@spawner.setter @spawner.setter
def spawner(self, spawner): def spawner(self, spawner):
self.spawners[''] = spawner self.spawners[''] = spawner