From b44177ce47da658570e1e74abfcdeea37478e8f8 Mon Sep 17 00:00:00 2001 From: Kyattsukuro Date: Thu, 13 Nov 2025 09:32:13 +0100 Subject: [PATCH] updated tests --- frontend/src/views/Chat.vue | 2 +- simple_chat_api/db_handler/user_manager.py | 2 +- simple_chat_api/endpoints/messages.py | 1 + .../tests/user_manager_unittest.py | 100 +++++++++++++++--- 4 files changed, 87 insertions(+), 18 deletions(-) diff --git a/frontend/src/views/Chat.vue b/frontend/src/views/Chat.vue index 7e9e4ce..c5bf8b6 100644 --- a/frontend/src/views/Chat.vue +++ b/frontend/src/views/Chat.vue @@ -43,7 +43,7 @@ onMounted(() => { msg.requestMessages() msgTimer.value = setInterval(() => { msg.requestMessages(msg.lastMsg()?.timestamp) - }, 3000) // 3s + }, 1000) // 1s }) // Clean up polling diff --git a/simple_chat_api/db_handler/user_manager.py b/simple_chat_api/db_handler/user_manager.py index 358bdc0..cc7781d 100644 --- a/simple_chat_api/db_handler/user_manager.py +++ b/simple_chat_api/db_handler/user_manager.py @@ -1,6 +1,6 @@ from simple_chat_api.db_handler.db_handler import DbConnector -from simple_chat_api.config import JWT_SECRET, hash_context +from simple_chat_api.config import hash_context class UserManager: """ diff --git a/simple_chat_api/endpoints/messages.py b/simple_chat_api/endpoints/messages.py index d6fdc2f..9abc6b2 100644 --- a/simple_chat_api/endpoints/messages.py +++ b/simple_chat_api/endpoints/messages.py @@ -21,6 +21,7 @@ def recive_msg(user: User, room: str): response.status = 400 return {"error": "Missing 'content' in request body"} new_msg = request.db_connector.add_msg_to_room(room, msg["content"], user.name) + return serialize_message([new_msg]) @app.route('/', method=['GET']) diff --git a/simple_chat_api/tests/user_manager_unittest.py b/simple_chat_api/tests/user_manager_unittest.py index 0242344..51debb7 100644 --- a/simple_chat_api/tests/user_manager_unittest.py +++ b/simple_chat_api/tests/user_manager_unittest.py @@ -21,26 +21,94 @@ class TestUserManagmentWrapper(unittest.TestCase): os.remove(DB_PATH) def test_create_user(self): - user = ("someone", "some_pass") - ret = self.user_mgr.create_user(*user) - self.assertTrue(ret, f"user {user} faild to be created") + users = [("someone", "pass"), ("someone", "fail")] + for user in users: + with self.subTest(user): + ret = self.user_mgr.create_user(*user) + if user[1] == "fail": + self.assertFalse(ret, f"user {user} was created but should not") + else: + self.assertTrue(ret, f"user {user} faild to be created") def test_authenticate(self): - self.assertTrue(self.user_mgr.authenticate(*EXISTING_USER), - f"Existing user {EXISTING_USER} could not be authenticated") - self.assertFalse(self.user_mgr.authenticate(EXISTING_USER[0], "unknown_pass"), - f"Existing user {EXISTING_USER[0]} could be authenticated with wrong password") - self.assertFalse(self.user_mgr.authenticate("unknown_user", "unknown_pass"), - f"An unknown User was authenticated") - + test_cases = [ + { + "username": EXISTING_USER[0], + "password": EXISTING_USER[1], + "expected": True, + "msg": f"Existing user {EXISTING_USER} could not be authenticated" + }, + { + "username": EXISTING_USER[0], + "password": "unknown_pass", + "expected": False, + "msg": f"Existing user {EXISTING_USER[0]} could be authenticated with wrong password" + }, + { + "username": "unknown_user", + "password": "unknown_pass", + "expected": False, + "msg": "An unknown user was authenticated" + }, + ] + + for case in test_cases: + with self.subTest(username=case["username"], password=case["password"]): + result = self.user_mgr.authenticate(case["username"], case["password"]) + self.assertEqual(result, case["expected"], case["msg"]) + def test_delete_user(self): - self.assertTrue(self.user_mgr.delete_user(EXISTING_USER[0]), f"The existing user {EXISTING_USER[0]} could not be removed") - self.assertFalse(self.user_mgr.delete_user("unknown_user"), "an unknown user could be deleted") + test_cases = [ + { + "username": EXISTING_USER[0], + "expected": True, + "msg": f"The existing user {EXISTING_USER[0]} could not be removed" + }, + { + "username": "unknown_user", + "expected": False, + "msg": "an unknown user could be deleted" + }, + ] + for case in test_cases: + with self.subTest(username=case["username"]): + result = self.user_mgr.delete_user(case["username"]) + self.assertEqual(result, case["expected"], case["msg"]) def test_change_password(self): - self.assertTrue(self.user_mgr.change_user_password(EXISTING_USER[0], "new_pass"), f"Could not change password for existing user") - self.assertFalse(self.user_mgr.change_user_password("unknown_user", "new_pass"), "The password for an unknown user was changed") + test_cases = [ + { + "username": EXISTING_USER[0], + "new_password": "new_pass", + "expected": True, + "msg": f"Could not change password for existing user {EXISTING_USER[0]}" + }, + { + "username": "unknown_user", + "new_password": "new_pass", + "expected": False, + "msg": "The password for an unknown user was changed" + }, + ] + for case in test_cases: + with self.subTest(username=case["username"]): + result = self.user_mgr.change_user_password(case["username"], case["new_password"]) + self.assertEqual(result, case["expected"], case["msg"]) def test_check_user_exists(self): - self.assertTrue(self.user_mgr.check_user_exists(EXISTING_USER[0]), f"The {EXISTING_USER[0]} could not be found") - self.assertFalse(self.user_mgr.check_user_exists("unknown_user"), "An unknown user was found") \ No newline at end of file + test_cases = [ + { + "username": EXISTING_USER[0], + "expected": True, + "msg": f"The existing user {EXISTING_USER[0]} could not be found" + }, + { + "username": "unknown_user", + "expected": False, + "msg": "An unknown user was found" + }, + ] + for case in test_cases: + with self.subTest(username=case["username"]): + result = self.user_mgr.check_user_exists(case["username"]) + self.assertEqual(result, case["expected"], case["msg"]) \ No newline at end of file