fix: format all code with black
and from now on should not deviate from that...
This commit is contained in:
parent
49f9a0228b
commit
a6bb538ce9
59 changed files with 2762 additions and 2131 deletions
|
@ -11,7 +11,6 @@ except ImportError:
|
|||
pass
|
||||
else:
|
||||
|
||||
|
||||
class TestAuthHandler(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
|
@ -19,7 +18,7 @@ else:
|
|||
self.app = self.config.get_app()
|
||||
self.handler = self.make_handler()
|
||||
|
||||
self.engine = sa.create_engine('sqlite://')
|
||||
self.engine = sa.create_engine("sqlite://")
|
||||
self.app.model.Base.metadata.create_all(bind=self.engine)
|
||||
self.session = self.make_session()
|
||||
|
||||
|
@ -35,37 +34,37 @@ else:
|
|||
|
||||
def test_authenticate_user(self):
|
||||
model = self.app.model
|
||||
barney = model.User(username='barney')
|
||||
self.handler.set_user_password(barney, 'goodpass')
|
||||
barney = model.User(username="barney")
|
||||
self.handler.set_user_password(barney, "goodpass")
|
||||
self.session.add(barney)
|
||||
self.session.commit()
|
||||
|
||||
# login ok
|
||||
user = self.handler.authenticate_user(self.session, 'barney', 'goodpass')
|
||||
user = self.handler.authenticate_user(self.session, "barney", "goodpass")
|
||||
self.assertIs(user, barney)
|
||||
|
||||
# can also pass user instead of username
|
||||
user = self.handler.authenticate_user(self.session, barney, 'goodpass')
|
||||
user = self.handler.authenticate_user(self.session, barney, "goodpass")
|
||||
self.assertIs(user, barney)
|
||||
|
||||
# bad password
|
||||
user = self.handler.authenticate_user(self.session, 'barney', 'BADPASS')
|
||||
user = self.handler.authenticate_user(self.session, "barney", "BADPASS")
|
||||
self.assertIsNone(user)
|
||||
|
||||
# bad username
|
||||
user = self.handler.authenticate_user(self.session, 'NOBODY', 'goodpass')
|
||||
user = self.handler.authenticate_user(self.session, "NOBODY", "goodpass")
|
||||
self.assertIsNone(user)
|
||||
|
||||
# inactive user
|
||||
user = self.handler.authenticate_user(self.session, 'barney', 'goodpass')
|
||||
user = self.handler.authenticate_user(self.session, "barney", "goodpass")
|
||||
self.assertIs(user, barney)
|
||||
barney.active = False
|
||||
user = self.handler.authenticate_user(self.session, 'barney', 'goodpass')
|
||||
user = self.handler.authenticate_user(self.session, "barney", "goodpass")
|
||||
self.assertIsNone(user)
|
||||
|
||||
def test_authenticate_user_token(self):
|
||||
model = self.app.model
|
||||
barney = model.User(username='barney')
|
||||
barney = model.User(username="barney")
|
||||
self.session.add(barney)
|
||||
token = self.handler.add_api_token(barney, "test token")
|
||||
self.session.commit()
|
||||
|
@ -73,32 +72,38 @@ else:
|
|||
user = self.handler.authenticate_user_token(self.session, None)
|
||||
self.assertIsNone(user)
|
||||
|
||||
user = self.handler.authenticate_user_token(self.session, token.token_string)
|
||||
user = self.handler.authenticate_user_token(
|
||||
self.session, token.token_string
|
||||
)
|
||||
self.assertIs(user, barney)
|
||||
|
||||
barney.active = False
|
||||
self.session.flush()
|
||||
user = self.handler.authenticate_user_token(self.session, token.token_string)
|
||||
user = self.handler.authenticate_user_token(
|
||||
self.session, token.token_string
|
||||
)
|
||||
self.assertIsNone(user)
|
||||
|
||||
barney.active = True
|
||||
self.session.flush()
|
||||
user = self.handler.authenticate_user_token(self.session, token.token_string)
|
||||
user = self.handler.authenticate_user_token(
|
||||
self.session, token.token_string
|
||||
)
|
||||
self.assertIs(user, barney)
|
||||
|
||||
user = self.handler.authenticate_user_token(self.session, 'bad-token')
|
||||
user = self.handler.authenticate_user_token(self.session, "bad-token")
|
||||
self.assertIsNone(user)
|
||||
|
||||
def test_check_user_password(self):
|
||||
model = self.app.model
|
||||
barney = model.User(username='barney')
|
||||
self.handler.set_user_password(barney, 'goodpass')
|
||||
barney = model.User(username="barney")
|
||||
self.handler.set_user_password(barney, "goodpass")
|
||||
self.session.add(barney)
|
||||
self.session.commit()
|
||||
|
||||
# basics
|
||||
self.assertTrue(self.handler.check_user_password(barney, 'goodpass'))
|
||||
self.assertFalse(self.handler.check_user_password(barney, 'BADPASS'))
|
||||
self.assertTrue(self.handler.check_user_password(barney, "goodpass"))
|
||||
self.assertFalse(self.handler.check_user_password(barney, "BADPASS"))
|
||||
|
||||
def test_get_role(self):
|
||||
model = self.app.model
|
||||
|
@ -120,17 +125,17 @@ else:
|
|||
|
||||
# key may be represented within a setting
|
||||
self.config.usedb = True
|
||||
role = self.handler.get_role(self.session, 'mykey')
|
||||
role = self.handler.get_role(self.session, "mykey")
|
||||
self.assertIsNone(role)
|
||||
setting = model.Setting(name='wutta.role.mykey', value=myrole.uuid.hex)
|
||||
setting = model.Setting(name="wutta.role.mykey", value=myrole.uuid.hex)
|
||||
self.session.add(setting)
|
||||
self.session.commit()
|
||||
role = self.handler.get_role(self.session, 'mykey')
|
||||
role = self.handler.get_role(self.session, "mykey")
|
||||
self.assertIs(role, myrole)
|
||||
|
||||
def test_get_user(self):
|
||||
model = self.app.model
|
||||
myuser = model.User(username='myuser')
|
||||
myuser = model.User(username="myuser")
|
||||
self.session.add(myuser)
|
||||
self.session.commit()
|
||||
|
||||
|
@ -155,7 +160,7 @@ else:
|
|||
self.assertIs(user, myuser)
|
||||
|
||||
# find user from person
|
||||
myperson = model.Person(full_name='My Name')
|
||||
myperson = model.Person(full_name="My Name")
|
||||
self.session.add(myperson)
|
||||
user.person = myperson
|
||||
self.session.commit()
|
||||
|
@ -173,11 +178,11 @@ else:
|
|||
self.assertIsNone(person.full_name)
|
||||
self.assertNotIn(person, self.session)
|
||||
|
||||
person = handler.make_person(first_name='Barney', last_name='Rubble')
|
||||
person = handler.make_person(first_name="Barney", last_name="Rubble")
|
||||
self.assertIsInstance(person, model.Person)
|
||||
self.assertEqual(person.first_name, 'Barney')
|
||||
self.assertEqual(person.last_name, 'Rubble')
|
||||
self.assertEqual(person.full_name, 'Barney Rubble')
|
||||
self.assertEqual(person.first_name, "Barney")
|
||||
self.assertEqual(person.last_name, "Rubble")
|
||||
self.assertEqual(person.full_name, "Barney Rubble")
|
||||
self.assertNotIn(person, self.session)
|
||||
|
||||
def test_make_user(self):
|
||||
|
@ -197,13 +202,13 @@ else:
|
|||
# default username
|
||||
# nb. this behavior requires a session
|
||||
user = self.handler.make_user(session=self.session)
|
||||
self.assertEqual(user.username, 'newuser')
|
||||
self.assertEqual(user.username, "newuser")
|
||||
|
||||
def test_delete_user(self):
|
||||
model = self.app.model
|
||||
|
||||
# basics
|
||||
myuser = model.User(username='myuser')
|
||||
myuser = model.User(username="myuser")
|
||||
self.session.add(myuser)
|
||||
self.session.commit()
|
||||
user = self.session.query(model.User).one()
|
||||
|
@ -217,67 +222,67 @@ else:
|
|||
|
||||
# default
|
||||
name = self.handler.make_preferred_username(self.session)
|
||||
self.assertEqual(name, 'newuser')
|
||||
self.assertEqual(name, "newuser")
|
||||
|
||||
# person/first+last
|
||||
person = model.Person(first_name='Barney', last_name='Rubble')
|
||||
person = model.Person(first_name="Barney", last_name="Rubble")
|
||||
name = self.handler.make_preferred_username(self.session, person=person)
|
||||
self.assertEqual(name, 'barney.rubble')
|
||||
self.assertEqual(name, "barney.rubble")
|
||||
|
||||
# person/first
|
||||
person = model.Person(first_name='Barney')
|
||||
person = model.Person(first_name="Barney")
|
||||
name = self.handler.make_preferred_username(self.session, person=person)
|
||||
self.assertEqual(name, 'barney')
|
||||
self.assertEqual(name, "barney")
|
||||
|
||||
# person/last
|
||||
person = model.Person(last_name='Rubble')
|
||||
person = model.Person(last_name="Rubble")
|
||||
name = self.handler.make_preferred_username(self.session, person=person)
|
||||
self.assertEqual(name, 'rubble')
|
||||
self.assertEqual(name, "rubble")
|
||||
|
||||
def test_make_unique_username(self):
|
||||
model = self.app.model
|
||||
|
||||
# default
|
||||
name = self.handler.make_unique_username(self.session)
|
||||
self.assertEqual(name, 'newuser')
|
||||
self.assertEqual(name, "newuser")
|
||||
user = model.User(username=name)
|
||||
self.session.add(user)
|
||||
self.session.commit()
|
||||
|
||||
# counter invoked if name exists
|
||||
name = self.handler.make_unique_username(self.session)
|
||||
self.assertEqual(name, 'newuser01')
|
||||
self.assertEqual(name, "newuser01")
|
||||
user = model.User(username=name)
|
||||
self.session.add(user)
|
||||
self.session.commit()
|
||||
|
||||
# starts by getting preferred name
|
||||
person = model.Person(first_name='Barney', last_name='Rubble')
|
||||
person = model.Person(first_name="Barney", last_name="Rubble")
|
||||
name = self.handler.make_unique_username(self.session, person=person)
|
||||
self.assertEqual(name, 'barney.rubble')
|
||||
self.assertEqual(name, "barney.rubble")
|
||||
user = model.User(username=name)
|
||||
self.session.add(user)
|
||||
self.session.commit()
|
||||
|
||||
# counter invoked if name exists
|
||||
name = self.handler.make_unique_username(self.session, person=person)
|
||||
self.assertEqual(name, 'barney.rubble01')
|
||||
self.assertEqual(name, "barney.rubble01")
|
||||
|
||||
def test_set_user_password(self):
|
||||
model = self.app.model
|
||||
myuser = model.User(username='myuser')
|
||||
myuser = model.User(username="myuser")
|
||||
self.session.add(myuser)
|
||||
|
||||
# basics
|
||||
self.assertIsNone(myuser.password)
|
||||
self.handler.set_user_password(myuser, 'goodpass')
|
||||
self.handler.set_user_password(myuser, "goodpass")
|
||||
self.session.commit()
|
||||
self.assertIsNotNone(myuser.password)
|
||||
# nb. password is hashed
|
||||
self.assertNotEqual(myuser.password, 'goodpass')
|
||||
self.assertNotEqual(myuser.password, "goodpass")
|
||||
|
||||
# confirm login works with new password
|
||||
user = self.handler.authenticate_user(self.session, 'myuser', 'goodpass')
|
||||
user = self.handler.authenticate_user(self.session, "myuser", "goodpass")
|
||||
self.assertIs(user, myuser)
|
||||
|
||||
def test_get_role_administrator(self):
|
||||
|
@ -337,15 +342,15 @@ else:
|
|||
self.assertEqual(len(perms), 0)
|
||||
|
||||
# role perms
|
||||
myrole = model.Role(name='My Role')
|
||||
myrole = model.Role(name="My Role")
|
||||
self.session.add(myrole)
|
||||
self.handler.grant_permission(myrole, 'foo')
|
||||
self.handler.grant_permission(myrole, "foo")
|
||||
self.session.commit()
|
||||
perms = self.handler.get_permissions(self.session, myrole)
|
||||
self.assertEqual(perms, {'foo'})
|
||||
self.assertEqual(perms, {"foo"})
|
||||
|
||||
# user perms
|
||||
myuser = model.User(username='myuser')
|
||||
myuser = model.User(username="myuser")
|
||||
self.session.add(myuser)
|
||||
self.session.commit()
|
||||
perms = self.handler.get_permissions(self.session, myuser)
|
||||
|
@ -353,7 +358,7 @@ else:
|
|||
myuser.roles.append(myrole)
|
||||
self.session.commit()
|
||||
perms = self.handler.get_permissions(self.session, myuser)
|
||||
self.assertEqual(perms, {'foo'})
|
||||
self.assertEqual(perms, {"foo"})
|
||||
|
||||
# invalid principal
|
||||
perms = self.handler.get_permissions(self.session, RuntimeError)
|
||||
|
@ -368,39 +373,41 @@ else:
|
|||
|
||||
# false default for role
|
||||
role = model.Role()
|
||||
self.assertFalse(self.handler.has_permission(self.session, role, 'foo'))
|
||||
self.assertFalse(self.handler.has_permission(self.session, role, "foo"))
|
||||
|
||||
# empty default for user
|
||||
user = model.User()
|
||||
self.assertFalse(self.handler.has_permission(self.session, user, 'foo'))
|
||||
self.assertFalse(self.handler.has_permission(self.session, user, "foo"))
|
||||
|
||||
# role perms
|
||||
myrole = model.Role(name='My Role')
|
||||
myrole = model.Role(name="My Role")
|
||||
self.session.add(myrole)
|
||||
self.session.commit()
|
||||
self.assertFalse(self.handler.has_permission(self.session, myrole, 'foo'))
|
||||
self.handler.grant_permission(myrole, 'foo')
|
||||
self.assertFalse(self.handler.has_permission(self.session, myrole, "foo"))
|
||||
self.handler.grant_permission(myrole, "foo")
|
||||
self.session.commit()
|
||||
self.assertTrue(self.handler.has_permission(self.session, myrole, 'foo'))
|
||||
self.assertTrue(self.handler.has_permission(self.session, myrole, "foo"))
|
||||
|
||||
# user perms
|
||||
myuser = model.User(username='myuser')
|
||||
myuser = model.User(username="myuser")
|
||||
self.session.add(myuser)
|
||||
self.session.commit()
|
||||
self.assertFalse(self.handler.has_permission(self.session, myuser, 'foo'))
|
||||
self.assertFalse(self.handler.has_permission(self.session, myuser, "foo"))
|
||||
myuser.roles.append(myrole)
|
||||
self.session.commit()
|
||||
self.assertTrue(self.handler.has_permission(self.session, myuser, 'foo'))
|
||||
self.assertTrue(self.handler.has_permission(self.session, myuser, "foo"))
|
||||
|
||||
# invalid principal
|
||||
self.assertFalse(self.handler.has_permission(self.session, RuntimeError, 'foo'))
|
||||
self.assertFalse(
|
||||
self.handler.has_permission(self.session, RuntimeError, "foo")
|
||||
)
|
||||
|
||||
# missing principal
|
||||
self.assertFalse(self.handler.has_permission(self.session, None, 'foo'))
|
||||
self.assertFalse(self.handler.has_permission(self.session, None, "foo"))
|
||||
|
||||
def test_grant_permission(self):
|
||||
model = self.app.model
|
||||
myrole = model.Role(name='My Role')
|
||||
myrole = model.Role(name="My Role")
|
||||
self.session.add(myrole)
|
||||
self.session.commit()
|
||||
|
||||
|
@ -408,38 +415,38 @@ else:
|
|||
self.assertEqual(self.session.query(model.Permission).count(), 0)
|
||||
|
||||
# grant one perm, and confirm
|
||||
self.handler.grant_permission(myrole, 'foo')
|
||||
self.handler.grant_permission(myrole, "foo")
|
||||
self.session.commit()
|
||||
self.assertEqual(self.session.query(model.Permission).count(), 1)
|
||||
perm = self.session.query(model.Permission).one()
|
||||
self.assertIs(perm.role, myrole)
|
||||
self.assertEqual(perm.permission, 'foo')
|
||||
self.assertEqual(perm.permission, "foo")
|
||||
|
||||
# grant same perm again, confirm just one exists
|
||||
self.handler.grant_permission(myrole, 'foo')
|
||||
self.handler.grant_permission(myrole, "foo")
|
||||
self.session.commit()
|
||||
self.assertEqual(self.session.query(model.Permission).count(), 1)
|
||||
perm = self.session.query(model.Permission).one()
|
||||
self.assertIs(perm.role, myrole)
|
||||
self.assertEqual(perm.permission, 'foo')
|
||||
self.assertEqual(perm.permission, "foo")
|
||||
|
||||
def test_revoke_permission(self):
|
||||
model = self.app.model
|
||||
myrole = model.Role(name='My Role')
|
||||
myrole = model.Role(name="My Role")
|
||||
self.session.add(myrole)
|
||||
self.handler.grant_permission(myrole, 'foo')
|
||||
self.handler.grant_permission(myrole, "foo")
|
||||
self.session.commit()
|
||||
|
||||
# just the one perm
|
||||
self.assertEqual(self.session.query(model.Permission).count(), 1)
|
||||
|
||||
# revoke it, then confirm
|
||||
self.handler.revoke_permission(myrole, 'foo')
|
||||
self.handler.revoke_permission(myrole, "foo")
|
||||
self.session.commit()
|
||||
self.assertEqual(self.session.query(model.Permission).count(), 0)
|
||||
|
||||
# revoke again, confirm
|
||||
self.handler.revoke_permission(myrole, 'foo')
|
||||
self.handler.revoke_permission(myrole, "foo")
|
||||
self.session.commit()
|
||||
self.assertEqual(self.session.query(model.Permission).count(), 0)
|
||||
|
||||
|
@ -450,7 +457,7 @@ else:
|
|||
|
||||
def test_add_api_token(self):
|
||||
model = self.app.model
|
||||
barney = model.User(username='barney')
|
||||
barney = model.User(username="barney")
|
||||
self.session.add(barney)
|
||||
|
||||
token = self.handler.add_api_token(barney, "test token")
|
||||
|
@ -461,7 +468,7 @@ else:
|
|||
|
||||
def test_delete_api_token(self):
|
||||
model = self.app.model
|
||||
barney = model.User(username='barney')
|
||||
barney = model.User(username="barney")
|
||||
self.session.add(barney)
|
||||
token = self.handler.add_api_token(barney, "test token")
|
||||
self.session.commit()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue