Update: Blueprint instead of app Routes for Tests
This commit is contained in:
parent
d556784983
commit
78bc60a4c0
6 changed files with 24 additions and 503 deletions
|
|
@ -28,6 +28,7 @@ def create_app(flask_env='development'):
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
print('import routes')
|
print('import routes')
|
||||||
from . import routes
|
from . import routes
|
||||||
|
app.register_blueprint(routes.bp)
|
||||||
print('db.create_all')
|
print('db.create_all')
|
||||||
db.create_all()
|
db.create_all()
|
||||||
print('db created')
|
print('db created')
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
from flask import current_app as app
|
from flask import request, Blueprint
|
||||||
from flask import request
|
|
||||||
from .responses import send_message, send_error
|
from .responses import send_message, send_error
|
||||||
from .api_functions import db_login, db_register, db_user_update, db_create_log, db_user_delete, db_admin_update_user, db_users
|
from .api_functions import db_login, db_register, db_user_update, db_create_log, db_user_delete, db_admin_update_user, \
|
||||||
|
db_users
|
||||||
from .sessionJWT import create_auth_token, check_auth_token
|
from .sessionJWT import create_auth_token, check_auth_token
|
||||||
|
|
||||||
|
bp = Blueprint('myapp', __name__)
|
||||||
|
|
||||||
|
|
||||||
# Login
|
# Login
|
||||||
@app.route('/api/login', methods=['POST'])
|
@bp.route('/api/login', methods=['POST'])
|
||||||
def login():
|
def login():
|
||||||
post_json = request.json
|
post_json = request.json
|
||||||
post_email = str(post_json['email'])
|
post_email = str(post_json['email'])
|
||||||
|
|
@ -30,7 +32,7 @@ def login():
|
||||||
|
|
||||||
|
|
||||||
# Register
|
# Register
|
||||||
@app.route('/api/register', methods=['POST'])
|
@bp.route('/api/register', methods=['POST'])
|
||||||
def register():
|
def register():
|
||||||
post_json = request.json
|
post_json = request.json
|
||||||
try:
|
try:
|
||||||
|
|
@ -49,11 +51,11 @@ def register():
|
||||||
else:
|
else:
|
||||||
return send_error(400, 'Empty email and/or password and/or nickname fields.')
|
return send_error(400, 'Empty email and/or password and/or nickname fields.')
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
return send_error(400, 'Need '+str(e)+'field.')
|
return send_error(400, 'Need ' + str(e) + 'field.')
|
||||||
|
|
||||||
|
|
||||||
# Logout
|
# Logout
|
||||||
@app.route('/api/logout', methods=['DELETE'])
|
@bp.route('/api/logout', methods=['DELETE'])
|
||||||
def logout():
|
def logout():
|
||||||
token = check_auth_token(request)
|
token = check_auth_token(request)
|
||||||
if token['success']:
|
if token['success']:
|
||||||
|
|
@ -74,7 +76,7 @@ def logout():
|
||||||
|
|
||||||
|
|
||||||
# Update User (Nickname, Password)
|
# Update User (Nickname, Password)
|
||||||
@app.route('/api/user/update', methods=['PUT'])
|
@bp.route('/api/user/update', methods=['PUT'])
|
||||||
def user_update():
|
def user_update():
|
||||||
token = check_auth_token(request)
|
token = check_auth_token(request)
|
||||||
if token['success']:
|
if token['success']:
|
||||||
|
|
@ -110,7 +112,7 @@ def user_update():
|
||||||
|
|
||||||
|
|
||||||
# Delete User
|
# Delete User
|
||||||
@app.route('/api/user/delete', methods=['DELETE'])
|
@bp.route('/api/user/delete', methods=['DELETE'])
|
||||||
def user_delete():
|
def user_delete():
|
||||||
token = check_auth_token(request)
|
token = check_auth_token(request)
|
||||||
if token['success']:
|
if token['success']:
|
||||||
|
|
@ -135,7 +137,7 @@ def user_delete():
|
||||||
|
|
||||||
|
|
||||||
# Admin : Create User
|
# Admin : Create User
|
||||||
@app.route('/api/admin/create/user', methods=['POST'])
|
@bp.route('/api/admin/create/user', methods=['POST'])
|
||||||
def admin_create_user():
|
def admin_create_user():
|
||||||
token = check_auth_token(request)
|
token = check_auth_token(request)
|
||||||
if token['success']:
|
if token['success']:
|
||||||
|
|
@ -205,7 +207,7 @@ def admin_create_user():
|
||||||
|
|
||||||
|
|
||||||
# Admin : Change User password and/or role
|
# Admin : Change User password and/or role
|
||||||
@app.route('/api/admin/update/user', methods=['PUT'])
|
@bp.route('/api/admin/update/user', methods=['PUT'])
|
||||||
def admin_update_user():
|
def admin_update_user():
|
||||||
token = check_auth_token(request)
|
token = check_auth_token(request)
|
||||||
if token['success']:
|
if token['success']:
|
||||||
|
|
@ -269,7 +271,7 @@ def admin_update_user():
|
||||||
|
|
||||||
|
|
||||||
# Admin : Delete User
|
# Admin : Delete User
|
||||||
@app.route('/api/admin/delete/user', methods=['DELETE'])
|
@bp.route('/api/admin/delete/user', methods=['DELETE'])
|
||||||
def admin_delete_user():
|
def admin_delete_user():
|
||||||
token = check_auth_token(request)
|
token = check_auth_token(request)
|
||||||
if token['success']:
|
if token['success']:
|
||||||
|
|
@ -320,7 +322,7 @@ def admin_delete_user():
|
||||||
|
|
||||||
|
|
||||||
# List of User (must be authenticated) & Search
|
# List of User (must be authenticated) & Search
|
||||||
@app.route('/api/users', methods=['GET'])
|
@bp.route('/api/users', methods=['GET'])
|
||||||
def users():
|
def users():
|
||||||
token = check_auth_token(request)
|
token = check_auth_token(request)
|
||||||
if token['success']:
|
if token['success']:
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ alembic==1.7.5
|
||||||
Flask==2.0.2
|
Flask==2.0.2
|
||||||
Flask-Migrate==3.1.0
|
Flask-Migrate==3.1.0
|
||||||
Flask-Script==2.0.6
|
Flask-Script==2.0.6
|
||||||
|
Flask-Testing==0.8.1
|
||||||
Flask-SQLAlchemy==2.5.1
|
Flask-SQLAlchemy==2.5.1
|
||||||
Flask-WTF==0.15.1
|
Flask-WTF==0.15.1
|
||||||
pipreqs==0.4.10
|
pipreqs==0.4.10
|
||||||
|
|
|
||||||
|
|
@ -9,41 +9,33 @@ from application.users_model import Users
|
||||||
from application.logs_model import Logs
|
from application.logs_model import Logs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class BaseTestCase(TestCase):
|
class BaseTestCase(TestCase):
|
||||||
|
|
||||||
def create_app(self):
|
def create_app(self):
|
||||||
app = create_app()
|
app = create_app('testing')
|
||||||
return app
|
return app
|
||||||
|
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
db.create_all()
|
db.create_all()
|
||||||
for user in TAB_USER:
|
for user in TAB_USER:
|
||||||
db.session.add(user)
|
db.session.add(user)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
db.session.remove()
|
db.session.remove()
|
||||||
db.drop_all()
|
db.drop_all()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class FlaskTestCase(BaseTestCase):
|
class FlaskTestCase(BaseTestCase):
|
||||||
|
|
||||||
# -- UTILS ---
|
# -- UTILS ---
|
||||||
|
|
||||||
def login(self, email, password):
|
# def login(self, email, password):
|
||||||
data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
"email": email,
|
# "email": email,
|
||||||
"password": password
|
# "password": password
|
||||||
})
|
# })
|
||||||
response = self.client.post('/api/login', data=data0)
|
# response = self.client.post('/api/login', data=data0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- LOGIN ---
|
# --- LOGIN ---
|
||||||
|
|
||||||
|
|
@ -53,7 +45,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# print(response.json)
|
# print(response.json)
|
||||||
# self.assertEqual(response.json['message'], 'Need email, password fields.')
|
# self.assertEqual(response.json['message'], 'Need email, password fields.')
|
||||||
|
|
||||||
|
|
||||||
# def test_login_empty_fields(self):
|
# def test_login_empty_fields(self):
|
||||||
# data0 = {
|
# data0 = {
|
||||||
# "email": "",
|
# "email": "",
|
||||||
|
|
@ -62,32 +53,22 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.post('/api/login', json=data0)
|
# response = self.client.post('/api/login', json=data0)
|
||||||
# self.assertEqual(response.json['message'], 'Empty email and/or password fields.')
|
# self.assertEqual(response.json['message'], 'Empty email and/or password fields.')
|
||||||
|
|
||||||
|
|
||||||
def test_login_wrong_fields(self):
|
def test_login_wrong_fields(self):
|
||||||
data0 = {
|
data0 = {
|
||||||
"email": "nimp@gmail.com",
|
"email": "nimp@gmail.com",
|
||||||
"password": "nimp"
|
"password": "nimp"
|
||||||
}
|
}
|
||||||
response = self.client.post('/api/login', json=data0)
|
response = self.client.post('/api/login', json=data0)
|
||||||
print("------------")
|
|
||||||
print(response)
|
|
||||||
print("------------")
|
|
||||||
self.assertEqual(response.json['message'], 'Email or password invalid')
|
self.assertEqual(response.json['message'], 'Email or password invalid')
|
||||||
|
|
||||||
|
|
||||||
def test_login_success(self):
|
def test_login_success(self):
|
||||||
data0 = {
|
data0 = {
|
||||||
"email": "riri@gmail.com",
|
"email": "riri@gmail.com",
|
||||||
"password": "ririPass"
|
"password": "ririPass"
|
||||||
}
|
}
|
||||||
response = self.client.post('/api/login', json=data0)
|
response = self.client.post('/api/login', json=data0)
|
||||||
print("------------")
|
|
||||||
print(response)
|
|
||||||
print("------------")
|
|
||||||
self.assertEqual(response.json['message'], 'User authenticated.')
|
self.assertEqual(response.json['message'], 'User authenticated.')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# # --- REGISTER ---
|
# # --- REGISTER ---
|
||||||
|
|
||||||
# def test_register_no_fields(self):
|
# def test_register_no_fields(self):
|
||||||
|
|
@ -95,7 +76,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.post('/api/register', data=data0)
|
# response = self.client.post('/api/register', data=data0)
|
||||||
# self.assertIn('Need', response.message)
|
# self.assertIn('Need', response.message)
|
||||||
|
|
||||||
|
|
||||||
# def test_register_empty_fields(self):
|
# def test_register_empty_fields(self):
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
# "email": "",
|
# "email": "",
|
||||||
|
|
@ -105,7 +85,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.post('/api/register', data=data0)
|
# response = self.client.post('/api/register', data=data0)
|
||||||
# self.assertEqual(response.message, 'Empty email and/or password and/or nickname fields.')
|
# self.assertEqual(response.message, 'Empty email and/or password and/or nickname fields.')
|
||||||
|
|
||||||
|
|
||||||
# def test_register_already_exist(self):
|
# def test_register_already_exist(self):
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
# "email": "riri@gmail.com",
|
# "email": "riri@gmail.com",
|
||||||
|
|
@ -115,7 +94,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.post('/api/register', data=data0)
|
# response = self.client.post('/api/register', data=data0)
|
||||||
# self.assertIn('already exist', response.message)
|
# self.assertIn('already exist', response.message)
|
||||||
|
|
||||||
|
|
||||||
# def test_register_success(self):
|
# def test_register_success(self):
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
# "email": "loulou@gmail.com",
|
# "email": "loulou@gmail.com",
|
||||||
|
|
@ -125,21 +103,17 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.post('/api/register', data=data0)
|
# response = self.client.post('/api/register', data=data0)
|
||||||
# self.assertEqual(response.message, 'User registered.')
|
# self.assertEqual(response.message, 'User registered.')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# # --- LOGOUT ---
|
# # --- LOGOUT ---
|
||||||
|
|
||||||
# def test_logout_fail(self):
|
# def test_logout_fail(self):
|
||||||
# response = self.client.delete('/api/logout')
|
# response = self.client.delete('/api/logout')
|
||||||
# self.assertEqual(response.status_code, 500)
|
# self.assertEqual(response.status_code, 500)
|
||||||
|
|
||||||
|
|
||||||
# def test_logout_success(self):
|
# def test_logout_success(self):
|
||||||
# self.login_user()
|
# self.login_user()
|
||||||
# response = self.client.delete('/api/logout')
|
# response = self.client.delete('/api/logout')
|
||||||
# self.assertEqual(response.status_code, 200)
|
# self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
|
||||||
# # --- SELF UPDATE ---
|
# # --- SELF UPDATE ---
|
||||||
|
|
||||||
# def test_self_update_not_connected(self):
|
# def test_self_update_not_connected(self):
|
||||||
|
|
@ -147,14 +121,12 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.put('/api/user/update', data=data0)
|
# response = self.client.put('/api/user/update', data=data0)
|
||||||
# self.assertEqual(response.status_code, 500)
|
# self.assertEqual(response.status_code, 500)
|
||||||
|
|
||||||
|
|
||||||
# def test_self_update_no_fields(self):
|
# def test_self_update_no_fields(self):
|
||||||
# self.login('riri@gmail.com', 'ririPass')
|
# self.login('riri@gmail.com', 'ririPass')
|
||||||
# data0 = json.dumps({})
|
# data0 = json.dumps({})
|
||||||
# response = self.client.put('/api/user/update', data=data0)
|
# response = self.client.put('/api/user/update', data=data0)
|
||||||
# self.assertIn('Need', response.message)
|
# self.assertIn('Need', response.message)
|
||||||
|
|
||||||
|
|
||||||
# def test_self_update_empty_fields(self):
|
# def test_self_update_empty_fields(self):
|
||||||
# self.login('riri@gmail.com', 'ririPass')
|
# self.login('riri@gmail.com', 'ririPass')
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
|
|
@ -164,7 +136,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.put('/api/user/update', data=data0)
|
# response = self.client.put('/api/user/update', data=data0)
|
||||||
# self.assertEqual(response.message, 'Empty nickname and/or password fields.')
|
# self.assertEqual(response.message, 'Empty nickname and/or password fields.')
|
||||||
|
|
||||||
|
|
||||||
# def test_self_update_success(self):
|
# def test_self_update_success(self):
|
||||||
# self.login('riri@gmail.com', 'ririPass')
|
# self.login('riri@gmail.com', 'ririPass')
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
|
|
@ -174,28 +145,22 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.put('/api/user/update', data=data0)
|
# response = self.client.put('/api/user/update', data=data0)
|
||||||
# self.assertEqual(response.status_code, 200)
|
# self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# # --- SELF DELETE ---
|
# # --- SELF DELETE ---
|
||||||
|
|
||||||
# def test_self_delete_not_connected(self):
|
# def test_self_delete_not_connected(self):
|
||||||
# response = self.client.delete('/api/user/delete')
|
# response = self.client.delete('/api/user/delete')
|
||||||
# self.assertEqual(response.status_code, 500)
|
# self.assertEqual(response.status_code, 500)
|
||||||
|
|
||||||
|
|
||||||
# def test_self_delete_success(self):
|
# def test_self_delete_success(self):
|
||||||
# self.login('donald@gmail.com', 'donaldPass')
|
# self.login('donald@gmail.com', 'donaldPass')
|
||||||
# response = self.client.delete('/api/user/delete')
|
# response = self.client.delete('/api/user/delete')
|
||||||
# self.assertEqual(response.status_code, 200)
|
# self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
|
||||||
# def test_self_delete_last_admin(self):
|
# def test_self_delete_last_admin(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# response = self.client.delete('/api/user/delete')
|
# response = self.client.delete('/api/user/delete')
|
||||||
# self.assertEqual(response.message, 'Can\'t delete last admin')
|
# self.assertEqual(response.message, 'Can\'t delete last admin')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# # --- admin: CREATE USER ---
|
# # --- admin: CREATE USER ---
|
||||||
|
|
||||||
# def test_admin_create_not_connected(self):
|
# def test_admin_create_not_connected(self):
|
||||||
|
|
@ -203,21 +168,18 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.post('/api/admin/create/user', data=data0)
|
# response = self.client.post('/api/admin/create/user', data=data0)
|
||||||
# self.assertEqual(response.message, 'User not authenticated.')
|
# self.assertEqual(response.message, 'User not authenticated.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_create_no_permission(self):
|
# def test_admin_create_no_permission(self):
|
||||||
# self.login('riri@gmail.com', 'ririPass')
|
# self.login('riri@gmail.com', 'ririPass')
|
||||||
# data0 = json.dumps({})
|
# data0 = json.dumps({})
|
||||||
# response = self.client.post('/api/admin/create/user', data=data0)
|
# response = self.client.post('/api/admin/create/user', data=data0)
|
||||||
# self.assertEqual(response.message, 'User does not have permission.')
|
# self.assertEqual(response.message, 'User does not have permission.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_create_no_fields(self):
|
# def test_admin_create_no_fields(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({})
|
# data0 = json.dumps({})
|
||||||
# response = self.client.post('/api/admin/create/user', data=data0)
|
# response = self.client.post('/api/admin/create/user', data=data0)
|
||||||
# self.assertIn('Need', response.message)
|
# self.assertIn('Need', response.message)
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_create_empty_fields(self):
|
# def test_admin_create_empty_fields(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
|
|
@ -229,7 +191,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.post('/api/admin/create/user', data=data0)
|
# response = self.client.post('/api/admin/create/user', data=data0)
|
||||||
# self.assertEqual(response.message, 'Empty email and/or nickname and/or password and/or is_admin fields.')
|
# self.assertEqual(response.message, 'Empty email and/or nickname and/or password and/or is_admin fields.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_create_already_exist(self):
|
# def test_admin_create_already_exist(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
|
|
@ -240,7 +201,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.post('/api/admin/create/user', data=data0)
|
# response = self.client.post('/api/admin/create/user', data=data0)
|
||||||
# self.assertIn('already exist', response.message)
|
# self.assertIn('already exist', response.message)
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_create_success(self):
|
# def test_admin_create_success(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
|
|
@ -252,8 +212,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.post('/api/admin/create/user', data=data0)
|
# response = self.client.post('/api/admin/create/user', data=data0)
|
||||||
# self.assertEqual(response.message, 'User registered.')
|
# self.assertEqual(response.message, 'User registered.')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# # --- admin: UPDATE USER ---
|
# # --- admin: UPDATE USER ---
|
||||||
|
|
||||||
# def test_admin_update_not_connected(self):
|
# def test_admin_update_not_connected(self):
|
||||||
|
|
@ -261,21 +219,18 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.put('/api/admin/update/user', data=data0)
|
# response = self.client.put('/api/admin/update/user', data=data0)
|
||||||
# self.assertEqual(response.message, 'User not authenticated.')
|
# self.assertEqual(response.message, 'User not authenticated.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_update_no_permission(self):
|
# def test_admin_update_no_permission(self):
|
||||||
# self.login('riri@gmail.com', 'ririPass')
|
# self.login('riri@gmail.com', 'ririPass')
|
||||||
# data0 = json.dumps({})
|
# data0 = json.dumps({})
|
||||||
# response = self.client.put('/api/admin/update/user', data=data0)
|
# response = self.client.put('/api/admin/update/user', data=data0)
|
||||||
# self.assertEqual(response.message, 'User does not have permission.')
|
# self.assertEqual(response.message, 'User does not have permission.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_update_no_fields(self):
|
# def test_admin_update_no_fields(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({})
|
# data0 = json.dumps({})
|
||||||
# response = self.client.put('/api/admin/update/user', data=data0)
|
# response = self.client.put('/api/admin/update/user', data=data0)
|
||||||
# self.assertIn('Need', response.message)
|
# self.assertIn('Need', response.message)
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_update_empty_fields(self):
|
# def test_admin_update_empty_fields(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
|
|
@ -286,7 +241,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.put('/api/admin/update/user', data=data0)
|
# response = self.client.put('/api/admin/update/user', data=data0)
|
||||||
# self.assertEqual(response.message, 'Empty is_admin and/or password fields.')
|
# self.assertEqual(response.message, 'Empty is_admin and/or password fields.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_update_not_exists(self):
|
# def test_admin_update_not_exists(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
|
|
@ -297,7 +251,6 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.put('/api/admin/update/user', data=data0)
|
# response = self.client.put('/api/admin/update/user', data=data0)
|
||||||
# self.assertEqual(response.message, 'User do not exist.')
|
# self.assertEqual(response.message, 'User do not exist.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_update_success(self):
|
# def test_admin_update_success(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({
|
# data0 = json.dumps({
|
||||||
|
|
@ -308,58 +261,46 @@ class FlaskTestCase(BaseTestCase):
|
||||||
# response = self.client.put('/api/admin/update/user', data=data0)
|
# response = self.client.put('/api/admin/update/user', data=data0)
|
||||||
# self.assertEqual(response.status_code, 200)
|
# self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# # --- admin: DELETE USER ---
|
# # --- admin: DELETE USER ---
|
||||||
|
|
||||||
# def test_admin_delete_not_connected(self):
|
# def test_admin_delete_not_connected(self):
|
||||||
# response = self.client.delete('/api/admin/delete/user')
|
# response = self.client.delete('/api/admin/delete/user')
|
||||||
# self.assertEqual(response.message, 'User not authenticated.')
|
# self.assertEqual(response.message, 'User not authenticated.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_delete_no_permission(self):
|
# def test_admin_delete_no_permission(self):
|
||||||
# self.login('riri@gmail.com', 'ririPass')
|
# self.login('riri@gmail.com', 'ririPass')
|
||||||
# response = self.client.delete('/api/admin/delete/user')
|
# response = self.client.delete('/api/admin/delete/user')
|
||||||
# self.assertEqual(response.message, 'User does not have permission.')
|
# self.assertEqual(response.message, 'User does not have permission.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_delete_no_fields(self):
|
# def test_admin_delete_no_fields(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({})
|
# data0 = json.dumps({})
|
||||||
# response = self.client.delete('/api/admin/delete/user')
|
# response = self.client.delete('/api/admin/delete/user')
|
||||||
# self.assertIn('Need', response.message)
|
# self.assertIn('Need', response.message)
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_delete_not_exists(self):
|
# def test_admin_delete_not_exists(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({"id": 99})
|
# data0 = json.dumps({"id": 99})
|
||||||
# response = self.client.delete('/api/admin/delete/user')
|
# response = self.client.delete('/api/admin/delete/user')
|
||||||
# self.assertEqual(response.message, 'User do not exist.')
|
# self.assertEqual(response.message, 'User do not exist.')
|
||||||
|
|
||||||
|
|
||||||
# def test_admin_delete_success(self):
|
# def test_admin_delete_success(self):
|
||||||
# self.login('daisy@gmail.com', 'daisyPass')
|
# self.login('daisy@gmail.com', 'daisyPass')
|
||||||
# data0 = json.dumps({"id": 2})
|
# data0 = json.dumps({"id": 2})
|
||||||
# response = self.client.delete('/api/admin/delete/user', data=data0)
|
# response = self.client.delete('/api/admin/delete/user', data=data0)
|
||||||
# self.assertEqual(response.status_code, 200)
|
# self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# # --- LIST OF USER ---
|
# # --- LIST OF USER ---
|
||||||
|
|
||||||
# def test_list_of_users_fail(self):
|
# def test_list_of_users_fail(self):
|
||||||
# response = self.client.get('/api/users')
|
# response = self.client.get('/api/users')
|
||||||
# self.assertEqual(response.status_code, 500)
|
# self.assertEqual(response.status_code, 500)
|
||||||
|
|
||||||
|
|
||||||
# def test_list_of_users_success(self):
|
# def test_list_of_users_success(self):
|
||||||
# self.login('riri@gmail.com', 'ririPass')
|
# self.login('riri@gmail.com', 'ririPass')
|
||||||
# response = self.client.get('/api/users')
|
# response = self.client.get('/api/users')
|
||||||
# self.assertEqual(response.status_code, 200)
|
# self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
sys.path.append("../application")
|
|
||||||
from users_model import Users
|
|
||||||
from api_functions import hash_password
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TAB_USER_WITH_PASSWORD = [
|
|
||||||
{
|
|
||||||
"id": 1,
|
|
||||||
"email": "riri@gmail.com",
|
|
||||||
"nickname": "Riri",
|
|
||||||
"password": "ririPass",
|
|
||||||
"is_admin": False
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"email": "fifi@gmail.com",
|
|
||||||
"nickname": "Fifi",
|
|
||||||
"password": "fifiPass",
|
|
||||||
"is_admin": False
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 3,
|
|
||||||
"email": "donald@gmail.com",
|
|
||||||
"nickname": "Donald",
|
|
||||||
"password": "donaldPass",
|
|
||||||
"is_admin": False
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": 4,
|
|
||||||
"email": "daisy@gmail.com",
|
|
||||||
"nickname": "Daisy",
|
|
||||||
"password": "daisyPass",
|
|
||||||
"is_admin": True
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Convert user with passord (uwp) to user
|
|
||||||
def uwp_to_user(uwp):
|
|
||||||
salt0 = os.urandom(32)
|
|
||||||
hash_pass0 = hash_password(salt0, uwp["password"])
|
|
||||||
return Users(
|
|
||||||
email = uwp["email"],
|
|
||||||
nickname = uwp["nickname"],
|
|
||||||
hash_pass = hash_pass0,
|
|
||||||
salt = salt0,
|
|
||||||
is_admin = uwp["is_admin"]
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TAB_USER = []
|
|
||||||
for uwp in TAB_USER_WITH_PASSWORD:
|
|
||||||
TAB_USER.append(uwp_to_user(uwp))
|
|
||||||
|
|
@ -1,366 +0,0 @@
|
||||||
import unittest
|
|
||||||
from flask.ext.testing import TestCase
|
|
||||||
import json
|
|
||||||
import sys
|
|
||||||
|
|
||||||
sys.path.append("../application")
|
|
||||||
from __init__ import app, db
|
|
||||||
from users_model import Users
|
|
||||||
from fictive_users import TAB_USER
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class BaseTestCase(TestCase):
|
|
||||||
|
|
||||||
def create_app(self):
|
|
||||||
FLASK_ENV = os.environ.get('FLASK_ENV', None)
|
|
||||||
if FLASK_ENV == 'production':
|
|
||||||
app.config.from_object("config.ProductionConfig")
|
|
||||||
elif FLASK_ENV == 'staging':
|
|
||||||
app.config.from_object("config.StagingConfig")
|
|
||||||
elif FLASK_ENV == 'development':
|
|
||||||
app.config.from_object("config.DevelopmentConfig")
|
|
||||||
else:
|
|
||||||
app.config.from_object("config.Config")
|
|
||||||
return app
|
|
||||||
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
db.create_all()
|
|
||||||
for user in TAB_USER:
|
|
||||||
db.session.add(user)
|
|
||||||
db.session.commit()
|
|
||||||
|
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
db.session.remove()
|
|
||||||
db.drop_all()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class FlaskTestCase(BaseTestCase):
|
|
||||||
|
|
||||||
# -- UTILS ---
|
|
||||||
|
|
||||||
def login(self, email, password):
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": email,
|
|
||||||
"passord": password
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/login', data=data0)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- LOGIN ---
|
|
||||||
|
|
||||||
def test_login_no_fields(self):
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.post('/api/login', data=data0)
|
|
||||||
self.assertEqual(response.message, 'Need email, password fields.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_login_empty_fields(self):
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": "",
|
|
||||||
"passord": "blabla"
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/login', data=data0)
|
|
||||||
self.assertEqual(response.message, 'Empty email and/or password fields.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_login_wrong_fields(self):
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": "nimp@gmail.com",
|
|
||||||
"passord": "nimp"
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/login', data=data0)
|
|
||||||
self.assertEqual(response.message, 'Email or password invalid')
|
|
||||||
|
|
||||||
|
|
||||||
def test_login_success(self):
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": "riri@gmail.com",
|
|
||||||
"passord": "ririPass"
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/login', data=data0)
|
|
||||||
self.assertEqual(response.message, 'User authenticated.')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- REGISTER ---
|
|
||||||
|
|
||||||
def test_register_no_fields(self):
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.post('/api/register', data=data0)
|
|
||||||
self.assertIn('Need', response.message)
|
|
||||||
|
|
||||||
|
|
||||||
def test_register_empty_fields(self):
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": "",
|
|
||||||
"passord": "blabla",
|
|
||||||
"nickname": "blabla"
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/register', data=data0)
|
|
||||||
self.assertEqual(response.message, 'Empty email and/or password and/or nickname fields.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_register_already_exist(self):
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": "riri@gmail.com",
|
|
||||||
"passord": "blabla",
|
|
||||||
"nickname": "blabla"
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/register', data=data0)
|
|
||||||
self.assertIn('already exist', response.message)
|
|
||||||
|
|
||||||
|
|
||||||
def test_register_success(self):
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": "loulou@gmail.com",
|
|
||||||
"passord": "loulouPass",
|
|
||||||
"nickname": "Loulou"
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/register', data=data0)
|
|
||||||
self.assertEqual(response.message, 'User registered.')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- LOGOUT ---
|
|
||||||
|
|
||||||
def test_logout_fail(self):
|
|
||||||
response = self.client.delete('/api/logout')
|
|
||||||
self.assertEqual(response.status_code, 500)
|
|
||||||
|
|
||||||
|
|
||||||
def test_logout_success(self):
|
|
||||||
self.login_user()
|
|
||||||
response = self.client.delete('/api/logout')
|
|
||||||
self.assertEqual(response.status_code, 200)
|
|
||||||
|
|
||||||
|
|
||||||
# --- SELF UPDATE ---
|
|
||||||
|
|
||||||
def test_self_update_not_connected(self):
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.put('/api/user/update', data=data0)
|
|
||||||
self.assertEqual(response.status_code, 500)
|
|
||||||
|
|
||||||
|
|
||||||
def test_self_update_no_fields(self):
|
|
||||||
self.login('riri@gmail.com', 'ririPass')
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.put('/api/user/update', data=data0)
|
|
||||||
self.assertIn('Need', response.message)
|
|
||||||
|
|
||||||
|
|
||||||
def test_self_update_empty_fields(self):
|
|
||||||
self.login('riri@gmail.com', 'ririPass')
|
|
||||||
data0 = json.dumps({
|
|
||||||
"nickname": "",
|
|
||||||
"password": "blabla"
|
|
||||||
})
|
|
||||||
response = self.client.put('/api/user/update', data=data0)
|
|
||||||
self.assertEqual(response.message, 'Empty nickname and/or password fields.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_self_update_success(self):
|
|
||||||
self.login('riri@gmail.com', 'ririPass')
|
|
||||||
data0 = json.dumps({
|
|
||||||
"nickname": "Ririri",
|
|
||||||
"password": "ririPass"
|
|
||||||
})
|
|
||||||
response = self.client.put('/api/user/update', data=data0)
|
|
||||||
self.assertEqual(response.status_code, 200)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- SELF DELETE ---
|
|
||||||
|
|
||||||
def test_self_delete_not_connected(self):
|
|
||||||
response = self.client.delete('/api/user/delete')
|
|
||||||
self.assertEqual(response.status_code, 500)
|
|
||||||
|
|
||||||
|
|
||||||
def test_self_delete_success(self):
|
|
||||||
self.login('donald@gmail.com', 'donaldPass')
|
|
||||||
response = self.client.delete('/api/user/delete')
|
|
||||||
self.assertEqual(response.status_code, 200)
|
|
||||||
|
|
||||||
|
|
||||||
def test_self_delete_last_admin(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
response = self.client.delete('/api/user/delete')
|
|
||||||
self.assertEqual(response.message, 'Can\'t delete last admin')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- admin: CREATE USER ---
|
|
||||||
|
|
||||||
def test_admin_create_not_connected(self):
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.post('/api/admin/create/user', data=data0)
|
|
||||||
self.assertEqual(response.message, 'User not authenticated.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_create_no_permission(self):
|
|
||||||
self.login('riri@gmail.com', 'ririPass')
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.post('/api/admin/create/user', data=data0)
|
|
||||||
self.assertEqual(response.message, 'User does not have permission.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_create_no_fields(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.post('/api/admin/create/user', data=data0)
|
|
||||||
self.assertIn('Need', response.message)
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_create_empty_fields(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": "",
|
|
||||||
"nickname": "Mickey",
|
|
||||||
"password": "mickeyPass",
|
|
||||||
"is_admin": true,
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/admin/create/user', data=data0)
|
|
||||||
self.assertEqual(response.message, 'Empty email and/or nickname and/or password and/or is_admin fields.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_create_already_exist(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": "riri@gmail.com",
|
|
||||||
"passord": "blabla",
|
|
||||||
"nickname": "blabla",
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/admin/create/user', data=data0)
|
|
||||||
self.assertIn('already exist', response.message)
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_create_success(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({
|
|
||||||
"email": "mickey@gmail.com",
|
|
||||||
"nickname": "Mickey",
|
|
||||||
"password": "mickeyPass",
|
|
||||||
"is_admin": true,
|
|
||||||
})
|
|
||||||
response = self.client.post('/api/admin/create/user', data=data0)
|
|
||||||
self.assertEqual(response.message, 'User registered.')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- admin: UPDATE USER ---
|
|
||||||
|
|
||||||
def test_admin_update_not_connected(self):
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.put('/api/admin/update/user', data=data0)
|
|
||||||
self.assertEqual(response.message, 'User not authenticated.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_update_no_permission(self):
|
|
||||||
self.login('riri@gmail.com', 'ririPass')
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.put('/api/admin/update/user', data=data0)
|
|
||||||
self.assertEqual(response.message, 'User does not have permission.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_update_no_fields(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.put('/api/admin/update/user', data=data0)
|
|
||||||
self.assertIn('Need', response.message)
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_update_empty_fields(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({
|
|
||||||
"id": 1,
|
|
||||||
"password": "",
|
|
||||||
"is_admin": false,
|
|
||||||
})
|
|
||||||
response = self.client.put('/api/admin/update/user', data=data0)
|
|
||||||
self.assertEqual(response.message, 'Empty is_admin and/or password fields.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_update_not_exists(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({
|
|
||||||
"id": 99,
|
|
||||||
"password": "",
|
|
||||||
"is_admin": false,
|
|
||||||
})
|
|
||||||
response = self.client.put('/api/admin/update/user', data=data0)
|
|
||||||
self.assertEqual(response.message, 'User do not exist.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_update_success(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({
|
|
||||||
"id": 1,
|
|
||||||
"password": "roroPass",
|
|
||||||
"is_admin": false,
|
|
||||||
})
|
|
||||||
response = self.client.put('/api/admin/update/user', data=data0)
|
|
||||||
self.assertEqual(response.status_code, 200)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- admin: DELETE USER ---
|
|
||||||
|
|
||||||
def test_admin_delete_not_connected(self):
|
|
||||||
response = self.client.delete('/api/admin/delete/user')
|
|
||||||
self.assertEqual(response.message, 'User not authenticated.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_delete_no_permission(self):
|
|
||||||
self.login('riri@gmail.com', 'ririPass')
|
|
||||||
response = self.client.delete('/api/admin/delete/user')
|
|
||||||
self.assertEqual(response.message, 'User does not have permission.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_delete_no_fields(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({})
|
|
||||||
response = self.client.delete('/api/admin/delete/user')
|
|
||||||
self.assertIn('Need', response.message)
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_delete_not_exists(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({"id": 99})
|
|
||||||
response = self.client.delete('/api/admin/delete/user')
|
|
||||||
self.assertEqual(response.message, 'User do not exist.')
|
|
||||||
|
|
||||||
|
|
||||||
def test_admin_delete_success(self):
|
|
||||||
self.login('daisy@gmail.com', 'daisyPass')
|
|
||||||
data0 = json.dumps({"id": 2})
|
|
||||||
response = self.client.delete('/api/admin/delete/user', data=data0)
|
|
||||||
self.assertEqual(response.status_code, 200)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --- LIST OF USER ---
|
|
||||||
|
|
||||||
def test_list_of_users_fail(self):
|
|
||||||
response = self.client.get('/api/users')
|
|
||||||
self.assertEqual(response.status_code, 500)
|
|
||||||
|
|
||||||
|
|
||||||
def test_list_of_users_success(self):
|
|
||||||
self.login('riri@gmail.com', 'ririPass')
|
|
||||||
response = self.client.get('/api/users')
|
|
||||||
self.assertEqual(response.status_code, 200)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.main()
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue