diff --git a/backend/__pycache__/app.cpython-310.pyc b/backend/__pycache__/app.cpython-310.pyc new file mode 100644 index 0000000..56671cd Binary files /dev/null and b/backend/__pycache__/app.cpython-310.pyc differ diff --git a/backend/__pycache__/config.cpython-310.pyc b/backend/__pycache__/config.cpython-310.pyc new file mode 100644 index 0000000..6ca6f0b Binary files /dev/null and b/backend/__pycache__/config.cpython-310.pyc differ diff --git a/backend/__pycache__/config.cpython-38.pyc b/backend/__pycache__/config.cpython-38.pyc index ad47e0f..6e1dae2 100644 Binary files a/backend/__pycache__/config.cpython-38.pyc and b/backend/__pycache__/config.cpython-38.pyc differ diff --git a/backend/__pycache__/fictive_users.cpython-38.pyc b/backend/__pycache__/fictive_users.cpython-38.pyc new file mode 100644 index 0000000..477bdc3 Binary files /dev/null and b/backend/__pycache__/fictive_users.cpython-38.pyc differ diff --git a/backend/application/__init__.py b/backend/application/__init__.py index c726987..9e7b2bb 100644 --- a/backend/application/__init__.py +++ b/backend/application/__init__.py @@ -26,10 +26,10 @@ def create_app(flask_env='development'): print('init_app') db.init_app(app) with app.app_context(): - print('import routes') + #print('import routes') from . import routes app.register_blueprint(routes.bp) - print('db.create_all') + #print('db.create_all') db.create_all() - print('db created') + #print('db created') return app diff --git a/backend/application/__pycache__/__init__.cpython-310.pyc b/backend/application/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..4f97792 Binary files /dev/null and b/backend/application/__pycache__/__init__.cpython-310.pyc differ diff --git a/backend/application/__pycache__/__init__.cpython-38.pyc b/backend/application/__pycache__/__init__.cpython-38.pyc index 073b912..b057e9d 100644 Binary files a/backend/application/__pycache__/__init__.cpython-38.pyc and b/backend/application/__pycache__/__init__.cpython-38.pyc differ diff --git a/backend/application/__pycache__/api_functions.cpython-310.pyc b/backend/application/__pycache__/api_functions.cpython-310.pyc new file mode 100644 index 0000000..037557d Binary files /dev/null and b/backend/application/__pycache__/api_functions.cpython-310.pyc differ diff --git a/backend/application/__pycache__/api_functions.cpython-38.pyc b/backend/application/__pycache__/api_functions.cpython-38.pyc index adf8d1d..9f49edf 100644 Binary files a/backend/application/__pycache__/api_functions.cpython-38.pyc and b/backend/application/__pycache__/api_functions.cpython-38.pyc differ diff --git a/backend/application/__pycache__/logs_model.cpython-310.pyc b/backend/application/__pycache__/logs_model.cpython-310.pyc new file mode 100644 index 0000000..c317af2 Binary files /dev/null and b/backend/application/__pycache__/logs_model.cpython-310.pyc differ diff --git a/backend/application/__pycache__/logs_model.cpython-38.pyc b/backend/application/__pycache__/logs_model.cpython-38.pyc index 73e48a0..f7aa63a 100644 Binary files a/backend/application/__pycache__/logs_model.cpython-38.pyc and b/backend/application/__pycache__/logs_model.cpython-38.pyc differ diff --git a/backend/application/__pycache__/responses.cpython-310.pyc b/backend/application/__pycache__/responses.cpython-310.pyc new file mode 100644 index 0000000..05d2496 Binary files /dev/null and b/backend/application/__pycache__/responses.cpython-310.pyc differ diff --git a/backend/application/__pycache__/routes.cpython-310.pyc b/backend/application/__pycache__/routes.cpython-310.pyc new file mode 100644 index 0000000..d5552d7 Binary files /dev/null and b/backend/application/__pycache__/routes.cpython-310.pyc differ diff --git a/backend/application/__pycache__/routes.cpython-38.pyc b/backend/application/__pycache__/routes.cpython-38.pyc index fae7dfb..7a95df1 100644 Binary files a/backend/application/__pycache__/routes.cpython-38.pyc and b/backend/application/__pycache__/routes.cpython-38.pyc differ diff --git a/backend/application/__pycache__/sessionJWT.cpython-310.pyc b/backend/application/__pycache__/sessionJWT.cpython-310.pyc new file mode 100644 index 0000000..2b9734d Binary files /dev/null and b/backend/application/__pycache__/sessionJWT.cpython-310.pyc differ diff --git a/backend/application/__pycache__/users_model.cpython-310.pyc b/backend/application/__pycache__/users_model.cpython-310.pyc new file mode 100644 index 0000000..e386a6a Binary files /dev/null and b/backend/application/__pycache__/users_model.cpython-310.pyc differ diff --git a/backend/application/__pycache__/users_model.cpython-38.pyc b/backend/application/__pycache__/users_model.cpython-38.pyc index 989f25a..43995d7 100644 Binary files a/backend/application/__pycache__/users_model.cpython-38.pyc and b/backend/application/__pycache__/users_model.cpython-38.pyc differ diff --git a/backend/fictive_users.py b/backend/fictive_users.py index 6f6399c..6d587a7 100644 --- a/backend/fictive_users.py +++ b/backend/fictive_users.py @@ -49,10 +49,4 @@ def uwp_to_user(uwp): 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)) \ No newline at end of file + ) \ No newline at end of file diff --git a/backend/test.py b/backend/test.py index 604f997..ef9d2df 100644 --- a/backend/test.py +++ b/backend/test.py @@ -2,58 +2,92 @@ import unittest from flask_testing import TestCase import json -from fictive_users import TAB_USER +from fictive_users import TAB_USER_WITH_PASSWORD, uwp_to_user from application import db, create_app from application.users_model import Users from application.logs_model import Logs + + class BaseTestCase(TestCase): def create_app(self): app = create_app('testing') return app + def setUp(self): db.create_all() - for user in TAB_USER: - db.session.add(user) + for uwp in TAB_USER_WITH_PASSWORD: + db.session.add(uwp_to_user(uwp)) 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, - # "password": password - # }) - # response = self.client.post('/api/login', data=data0) + def login(self, email, password): + data0 = { + "email": email, + "password": password + } + response = self.client.post('/api/login', json=data0) + return response + + # --- LOGIN --- - # def test_login_no_fields(self): - # data0 = {} - # response = self.client.post('/api/login', json={}) - # print(response.json) - # self.assertEqual(response.json['message'], 'Need email, password fields.') + def test_login_NoFields_statusCode(self): + data0 = {} + response = self.client.post('/api/login', json={}) + self.assertEqual(response.status_code, 400) - # def test_login_empty_fields(self): - # data0 = { - # "email": "", - # "password": "blabla" - # } - # response = self.client.post('/api/login', json=data0) - # self.assertEqual(response.json['message'], 'Empty email and/or password fields.') - def test_login_wrong_fields(self): + def test_login_NoFields_message(self): + data0 = {} + response = self.client.post('/api/login', json={}) + self.assertEqual(response.json['message'], 'Need email, password fields.') + + + def test_login_emptyFields_statusCode(self): + data0 = { + "email": "", + "password": "blabla" + } + response = self.client.post('/api/login', json=data0) + self.assertEqual(response.status_code, 400) + + + def test_login_emptyFields_message(self): + data0 = { + "email": "", + "password": "blabla" + } + response = self.client.post('/api/login', json=data0) + self.assertEqual(response.json['message'], 'Empty email and/or password fields.') + + + def test_login_wrongFields_statusCode(self): + data0 = { + "email": "nimp@gmail.com", + "password": "nimp" + } + response = self.client.post('/api/login', json=data0) + self.assertEqual(response.status_code, 404) + + + def test_login_wrongFields_message(self): data0 = { "email": "nimp@gmail.com", "password": "nimp" @@ -61,7 +95,17 @@ class FlaskTestCase(BaseTestCase): response = self.client.post('/api/login', json=data0) self.assertEqual(response.json['message'], 'Email or password invalid') - def test_login_success(self): + + def test_login_success_statusCode(self): + data0 = { + "email": "riri@gmail.com", + "password": "ririPass" + } + response = self.client.post('/api/login', json=data0) + self.assertEqual(response.status_code, 200) + + + def test_login_success_message(self): data0 = { "email": "riri@gmail.com", "password": "ririPass" @@ -69,237 +113,598 @@ class FlaskTestCase(BaseTestCase): response = self.client.post('/api/login', json=data0) self.assertEqual(response.json['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": "", - # "password": "blabla", - # "nickname": "blabla" - # }) - # response = self.client.post('/api/register', data=data0) - # self.assertEqual(response.message, 'Empty email and/or password and/or nickname fields.') + # --- REGISTER --- - # def test_register_already_exist(self): - # data0 = json.dumps({ - # "email": "riri@gmail.com", - # "password": "blabla", - # "nickname": "blabla" - # }) - # response = self.client.post('/api/register', data=data0) - # self.assertIn('already exist', response.message) + def test_register_noFields_statusCode(self): + response = self.client.post('/api/register', json={}) + self.assertEqual(response.status_code, 400) - # def test_register_success(self): - # data0 = json.dumps({ - # "email": "loulou@gmail.com", - # "password": "loulouPass", - # "nickname": "Loulou" - # }) - # response = self.client.post('/api/register', data=data0) - # self.assertEqual(response.message, 'User registered.') - # # --- LOGOUT --- + def test_register_noFields_message(self): + response = self.client.post('/api/register', json={}) + self.assertIn('Need', response.json['message']) - # 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) + def test_register_emptyFields_statusCode(self): + data0 = { + "email": "", + "password": "blabla", + "nickname": "blabla" + } + response = self.client.post('/api/register', json=data0) + self.assertEqual(response.status_code, 400) - # # --- 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_register_emptyFields_message(self): + data0 = { + "email": "", + "password": "blabla", + "nickname": "blabla" + } + response = self.client.post('/api/register', json=data0) + self.assertEqual(response.json['message'], 'Empty email and/or password and/or nickname fields.') - # 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_register_alreadyExist_statusCode(self): + data0 = { + "email": "riri@gmail.com", + "password": "blabla", + "nickname": "blabla" + } + response = self.client.post('/api/register', json=data0) + self.assertEqual(response.status_code, 500) - # 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_register_alreadyExist_statusCode(self): + data0 = { + "email": "riri@gmail.com", + "password": "blabla", + "nickname": "blabla" + } + response = self.client.post('/api/register', json=data0) + self.assertIn('already exist', response.json['message']) - # 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_register_success_statusCode(self): + data0 = { + "email": "loulou@gmail.com", + "password": "loulouPass", + "nickname": "Loulou" + } + response = self.client.post('/api/register', json=data0) + 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_register_success_message(self): + data0 = { + "email": "loulou@gmail.com", + "password": "loulouPass", + "nickname": "Loulou" + } + response = self.client.post('/api/register', json=data0) + self.assertEqual(response.json['message'], 'User registered.') - # 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) + # --- LOGOUT --- - # 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_logout_fail_(self): + response = self.client.delete('/api/logout') + self.assertEqual(response.status_code, 500) - # 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.') + def test_logout_success(self): + response = self.login("riri@gmail.com", "ririPass") + if response.status_code == 200: + response = self.client.delete('/api/logout') + self.assertEqual(response.status_code, 200) + else: + self.assertEqual(True, False) - # # --- 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.') + # --- SELF UPDATE --- - # 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_selfUpdate_notConnected_statusCode(self): + response = self.client.put('/api/user/update', json={}) + self.assertEqual(response.status_code, 500) - # 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_selfUpdate_notConnected_message(self): + response = self.client.put('/api/user/update', json={}) + self.assertEqual(response.json['message'], 'User not authenticated.') - # 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_selfUpdate_noFields_statusCode(self): + response = self.login("riri@gmail.com", "ririPass") + if response.status_code == 200: + response = self.client.put('/api/user/update', json={}) + self.assertEqual(response.status_code, 400) + else: + self.assertEqual(True, False) - # 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_selfUpdate_noFields_message(self): + response = self.login("riri@gmail.com", "ririPass") + if response.status_code == 200: + response = self.client.put('/api/user/update', json={}) + self.assertIn('Need', response.json['message']) + else: + self.assertEqual(True, False) - # 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_selfUpdate_emptyFields_statusCode(self): + response = self.login("riri@gmail.com", "ririPass") + if response.status_code == 200: + data0 = { + "nickname": "", + "password": "blabla" + } + response = self.client.put('/api/user/update', json=data0) + self.assertEqual(response.status_code, 400) + else: + self.assertEqual(True, False) - # 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_selfUpdate_emptyFields_message(self): + response = self.login("riri@gmail.com", "ririPass") + if response.status_code == 200: + data0 = { + "nickname": "", + "password": "blabla" + } + response = self.client.put('/api/user/update', json=data0) + self.assertEqual(response.json['message'], 'Empty nickname and/or password fields.') + else: + self.assertEqual(True, False) + + + def test_self_update_success_statusCode(self): + response = self.login("riri@gmail.com", "ririPass") + if response.status_code == 200: + data0 = { + "nickname": "Ririri", + "password": "ririPass" + } + response = self.client.put('/api/user/update', json=data0) + self.assertEqual(response.status_code, 200) + else: + self.assertEqual(True, False) + + + + # --- SELF DELETE --- + + def test_selfDelete_notConnected_statusCode(self): + response = self.client.delete('/api/user/delete') + self.assertEqual(response.status_code, 500) + + + def test_selfDelete_notConnected_message(self): + response = self.client.delete('/api/user/delete') + self.assertEqual(response.json['message'], 'User not authenticated.') + + + def test_selfDelete_success_statusCode(self): + response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.delete('/api/user/delete') + self.assertEqual(response.status_code, 200) + else: + self.assertEqual(True, False) + + + def test_selfDelete_success_message(self): + response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.delete('/api/user/delete') + self.assertEqual(response.json['message'], 'User deleted.') + else: + self.assertEqual(True, False) + + + def test_selfDelete_last_admin_statusCode(self): + response = response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.delete('/api/user/delete') + if response.status_code == 200: + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + response = self.client.delete('/api/user/delete') + self.assertEqual(response.status_code, 400) + self.assertEqual(True, False) + + + def test_selfDelete_last_admin_message(self): + response = self.login('donald@gmail.com', 'donaldPass') + if response.status_code == 200: + response = self.client.delete('/api/user/delete') + if response.status_code == 200: + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + response = self.client.delete('/api/user/delete') + self.assertEqual(response.json['message'], 'Can\'t delete last admin') + self.assertEqual(True, False) + + + + # --- admin: CREATE USER --- + + def test_adminCreate_notConnected_statusCode(self): + response = self.client.post('/api/admin/create/user', json={}) + self.assertEqual(response.status_code, 500) + + + def test_adminCreate_notConnected_message(self): + response = self.client.post('/api/admin/create/user', json={}) + self.assertEqual(response.json['message'], 'User not authenticated.') + + + def test_adminCreate_noPermission_statusCode(self): + response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.post('/api/admin/create/user', json={}) + self.assertEqual(response.status_code, 500) + else: + self.assertEqual(True, False) + + + def test_adminCreate_noPermission_message(self): + response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.post('/api/admin/create/user', json={}) + self.assertEqual(response.json['message'], 'User does not have permission.') + else: + self.assertEqual(True, False) + + + def test_adminCreate_noFields_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + response = self.client.post('/api/admin/create/user', json={}) + self.assertEqual(response.status_code, 400) + else: + self.assertEqual(True, False) + + + def test_adminCreate_noFields_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + response = self.client.post('/api/admin/create/user', json={}) + self.assertIn('Need', response.json['message']) + else: + self.assertEqual(True, False) + + + def test_adminCreate_emptyFields_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "email": "", + "nickname": "Mickey", + "password": "mickeyPass", + "is_admin": True, + } + response = self.client.post('/api/admin/create/user', json=data0) + self.assertEqual(response.status_code, 400) + else: + self.assertEqual(True, False) + + + def test_adminCreate_emptyFields_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "email": "", + "nickname": "Mickey", + "password": "mickeyPass", + "is_admin": True, + } + response = self.client.post('/api/admin/create/user', json=data0) + self.assertEqual(response.json['message'], 'Empty email and/or nickname and/or password and/or is_admin fields.') + else: + self.assertEqual(True, False) + + + def test_adminCreate_alreadyExist_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "email": "riri@gmail.com", + "passord": "blabla", + "nickname": "blabla", + } + response = self.client.post('/api/admin/create/user', json=data0) + self.assertEqual(response.status_code, 500) + else: + self.assertEqual(True, False) + + + def test_adminCreate_alreadyExist_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "email": "riri@gmail.com", + "passord": "blabla", + "nickname": "blabla", + } + response = self.client.post('/api/admin/create/user', json=data0) + self.assertIn('already exist', response.json['message']) + else: + self.assertEqual(True, False) + + + def test_adminCreate_success_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "email": "mickey@gmail.com", + "nickname": "Mickey", + "password": "mickeyPass", + "is_admin": True, + } + response = self.client.post('/api/admin/create/user', json=data0) + self.assertEqual(response.status_code, 200) + else: + self.assertEqual(True, False) + + + def test_adminCreate_success_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "email": "mickey@gmail.com", + "nickname": "Mickey", + "password": "mickeyPass", + "is_admin": True, + } + response = self.client.post('/api/admin/create/user', json=data0) + self.assertEqual(response.json['message'], 'User registered.') + else: + self.assertEqual(True, False) + + + + # --- admin: UPDATE USER --- + + def test_adminUpdate_notConnected_statusCode(self): + response = self.client.put('/api/admin/update/user', json={}) + self.assertEqual(response.status_code, 500) + + + def test_adminUpdate_notConnected_message(self): + response = self.client.put('/api/admin/update/user', json={}) + self.assertEqual(response.json['message'], 'User not authenticated.') + + + def test_adminUpdate_noPermission_statusCode(self): + response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.put('/api/admin/update/user', json={}) + self.assertEqual(response.status_code, 500) + else: + self.assertEqual(True, False) + + + def test_adminUpdate_noPermission_message(self): + response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.put('/api/admin/update/user', json={}) + self.assertEqual(response.json['message'], 'User does not have permission.') + else: + self.assertEqual(True, False) + + + def test_adminUpdate_noFields_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + response = self.client.put('/api/admin/update/user', json={}) + self.assertEqual(response.status_code, 400) + else: + self.assertEqual(True, False) + + + def test_adminUpdate_noFields_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + response = self.client.put('/api/admin/update/user', json={}) + self.assertIn('Need', response.json['message']) + else: + self.assertEqual(True, False) + + + def test_adminUpdate_emptyFields_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "id": 1, + "password": "", + "is_admin": False, + } + response = self.client.put('/api/admin/update/user', json=data0) + self.assertEqual(response.status_code, 400) + else: + self.assertEqual(True, False) + + + def test_adminUpdate_emptyFields_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "id": 1, + "password": "", + "is_admin": False, + } + response = self.client.put('/api/admin/update/user', json=data0) + self.assertEqual(response.json['message'], 'Empty is_admin and/or password fields.') + else: + self.assertEqual(True, False) + + + def test_adminUpdate_notExists_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "id": 99, + "password": "blabla", + "is_admin": False + } + response = self.client.put('/api/admin/update/user', json=data0) + self.assertEqual(response.status_code, 500) + else: + self.assertEqual(True, False) + + + def test_adminUpdate_notExists_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "id": 99, + "password": "blabla", + "is_admin": False + } + response = self.client.put('/api/admin/update/user', json=data0) + self.assertEqual(response.json['message'], 'User do not exist.') + else: + self.assertEqual(True, False) + + + def test_adminUpdate_success_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "id": 1, + "password": "roroPass", + "is_admin": False, + } + response = self.client.put('/api/admin/update/user', json=data0) + self.assertEqual(response.status_code, 200) + else: + self.assertEqual(True, False) + + + def test_adminUpdate_success_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = { + "id": 1, + "password": "roroPass", + "is_admin": False, + } + response = self.client.put('/api/admin/update/user', json=data0) + self.assertIn("updated", response.json['message']) + else: + self.assertEqual(True, False) + + + + # --- admin: DELETE USER --- + + def test_adminDelete_notConnected_statusCode(self): + response = self.client.delete('/api/admin/delete/user') + self.assertEqual(response.status_code, 500) + + + def test_adminDelete_notConnected_message(self): + response = self.client.delete('/api/admin/delete/user') + self.assertEqual(response.json['message'], 'User not authenticated.') + + + def test_adminDelete_noPermission_statusCode(self): + response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.delete('/api/admin/delete/user') + self.assertEqual(response.status_code, 500) + else: + self.assertEqual(True, False) + + + def test_adminDelete_noPermission_message(self): + response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.delete('/api/admin/delete/user') + self.assertEqual(response.json['message'], 'User does not have permission.') + else: + self.assertEqual(True, False) + + + def test_adminDelete_noFields_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + response = self.client.delete('/api/admin/delete/user', json={}) + self.assertEqual(response.status_code, 400) + else: + self.assertEqual(True, False) + + + def test_adminDelete_no_fields(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + response = self.client.delete('/api/admin/delete/user', json={}) + self.assertIn('Need', response.json['message']) + else: + self.assertEqual(True, False) + + + def test_adminDelete_notExists_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = {"id": 99} + response = self.client.delete('/api/admin/delete/user', json=data0) + self.assertEqual(response.status_code, 500) + else: + self.assertEqual(True, False) + + + def test_adminDelete_notExists_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = {"id": 99} + response = self.client.delete('/api/admin/delete/user', json=data0) + self.assertEqual(response.json['message'], 'User do not exist.') + else: + self.assertEqual(True, False) + + + def test_adminDelete_success_statusCode(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = {"id": 2} + response = self.client.delete('/api/admin/delete/user', json=data0) + self.assertEqual(response.status_code, 200) + else: + self.assertEqual(True, False) + + + def test_adminDelete_success_message(self): + response = self.login('daisy@gmail.com', 'daisyPass') + if response.status_code == 200: + data0 = {"id": 2} + response = self.client.delete('/api/admin/delete/user', json=data0) + self.assertEqual(response.json['message'], 'User deleted.') + else: + self.assertEqual(True, False) + + + + # --- LIST OF USER --- + + def test_listOfUsers_fail(self): + response = self.client.get('/api/users') + self.assertEqual(response.status_code, 500) + + + def test_listOfUsers_success(self): + response = self.login('riri@gmail.com', 'ririPass') + if response.status_code == 200: + response = self.client.get('/api/users?order_by=nickname') + self.assertEqual(response.status_code, 200) + else: + self.assertEqual(True, False) - # 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__': diff --git a/frontend/src/app/admin/userList/page-user-list/page-user-list.component.html b/frontend/src/app/admin/userList/page-user-list/page-user-list.component.html index 81abaa9..483b6db 100644 --- a/frontend/src/app/admin/userList/page-user-list/page-user-list.component.html +++ b/frontend/src/app/admin/userList/page-user-list/page-user-list.component.html @@ -4,7 +4,7 @@