58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
import unittest
|
|
|
|
from flask import json
|
|
|
|
from app.core import app
|
|
from app.model import USER, getUser
|
|
|
|
|
|
class AuthTestCase(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
if getUser(login="admin") is None:
|
|
query = USER.insert().values(login="admin", email="admin@admin.com", role="4", phone="00.00.00.00.00")
|
|
query.execute()
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
pass
|
|
|
|
def setUp(self):
|
|
self.app = app.test_client()
|
|
|
|
def tearDown(self):
|
|
pass
|
|
|
|
def login(self, email, password):
|
|
return self.app.post('/api/login',
|
|
data=json.dumps(
|
|
dict(
|
|
login=email,
|
|
password=password
|
|
)
|
|
), content_type='application/json')
|
|
|
|
def logout(self):
|
|
return self.app.delete('/api/login')
|
|
|
|
def test_login_logout(self):
|
|
rv = self.login('admin', 'admin')
|
|
self.assertEqual(rv.status_code, 200, 'Login as admin Failed')
|
|
|
|
rv = self.logout()
|
|
self.assertEqual(rv.status_code, 200, 'Logout Failed')
|
|
|
|
rv = self.login('adminx', 'admin')
|
|
self.assertEqual(rv.status_code, 401, 'Authentication from CAS has not failed for the invalid user xadmin !')
|
|
|
|
rv = self.login('admin', 'adminx')
|
|
self.assertEqual(rv.status_code, 401,
|
|
'Authentication from CAS has not failed for the invalid password xadmin !')
|
|
|
|
rv = self.login('toto', 'toto')
|
|
self.assertEqual(rv.status_code, 403, 'Authentication shouldn\'t be allowed for user toto !')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|