Add some tests

This commit is contained in:
Stephan Porada
2019-07-09 15:41:28 +02:00
parent 79cccd36ee
commit 8458271a5c
2 changed files with 84 additions and 8 deletions

View File

@ -1,10 +1,22 @@
import unittest
import time
from app.models import User
from app import db
from app import create_app, db
from app.models import User, AnonymousUser, Role, Permission
class UserModelTestCase(unittest.TestCase):
def setUp(self):
self.app = create_app('testing')
self.app_context = self.app.app_context()
self.app_context.push()
db.create_all()
Role.insert_roles()
def tearDown(self):
db.session.remove()
db.drop_all()
self.app_context.pop()
def test_password_setter(self):
u = User(password='cat')
self.assertTrue(u.password_hash is not None)
@ -47,3 +59,13 @@ class UserModelTestCase(unittest.TestCase):
token = u.generate_confirmation_token(1)
time.sleep(2)
self.assertFalse(u.confirm(token))
def test_user_role(self):
u = User(email='john@example.com', password='cat')
self.assertTrue(u.can(Permission.CREATE_JOB))
self.assertFalse(u.can(Permission.ADMIN))
def test_anonymous_user(self):
u = AnonymousUser()
self.assertFalse(u.can(Permission.CREATE_JOB))
self.assertFalse(u.can(Permission.ADMIN))