Added unit tests for admin user test and touchkey-only userlist.

This commit is contained in:
s3lph 2018-08-14 23:58:54 +02:00
parent 707883b1c4
commit 0b34f5ec7f

View file

@ -4,6 +4,7 @@ import unittest
import crypt import crypt
from matemat.db import MatematDatabase from matemat.db import MatematDatabase
from matemat.db.primitives import User
from matemat.exceptions import AuthenticationError, DatabaseConsistencyError from matemat.exceptions import AuthenticationError, DatabaseConsistencyError
@ -43,10 +44,14 @@ class DatabaseTest(unittest.TestCase):
with self.db as db: with self.db as db:
users = db.list_users() users = db.list_users()
self.assertEqual(0, len(users)) self.assertEqual(0, len(users))
db.create_user('testuser', 'supersecurepassword', 'testuser@example.com', True, True) users = db.list_users(with_touchkey=True)
self.assertEqual(0, len(users))
testuser: User = db.create_user('testuser', 'supersecurepassword', 'testuser@example.com', True, True)
db.change_touchkey(testuser, '', 'touchkey', verify_password=False)
db.create_user('anothertestuser', 'otherpassword', 'anothertestuser@example.com', False, True) db.create_user('anothertestuser', 'otherpassword', 'anothertestuser@example.com', False, True)
db.create_user('yatu', 'igotapasswordtoo', 'yatu@example.com', False, False) db.create_user('yatu', 'igotapasswordtoo', 'yatu@example.com', False, False)
users = db.list_users() users = db.list_users()
users_with_touchkey = db.list_users(with_touchkey=True)
self.assertEqual(3, len(users)) self.assertEqual(3, len(users))
usercheck = {} usercheck = {}
for user in users: for user in users:
@ -64,6 +69,16 @@ class DatabaseTest(unittest.TestCase):
self.assertFalse(user.is_admin) self.assertFalse(user.is_admin)
usercheck[user.id] = 1 usercheck[user.id] = 1
self.assertEqual(3, len(usercheck)) self.assertEqual(3, len(usercheck))
self.assertEqual(1, len(users_with_touchkey))
self.assertEqual('testuser', users_with_touchkey[0].name)
def test_has_admin_users(self):
with self.db as db:
self.assertFalse(db.has_admin_users())
testuser: User = db.create_user('testuser', 'supersecurepassword', 'testuser@example.com', True, True)
self.assertTrue(db.has_admin_users())
db.change_user(testuser, agent=testuser, is_admin=False)
self.assertFalse(db.has_admin_users())
def test_login(self) -> None: def test_login(self) -> None:
with self.db as db: with self.db as db: