import os import unittest from ...database.db_api import create_tables, connect_database, add_user from ..roles import Roles class TestRoles(unittest.IsolatedAsyncioTestCase): database = None path = None @classmethod def setUpClass(cls): cls.roles = Roles() cls.database, cls.path = connect_database(is_test=True, module="roles") create_tables(cls.database) add_user(user_id=1, user_name="TestUser1", user_tag="TestTag1", user_role=0, user_stats=30, user_rep=15) add_user(user_id=2, user_name="TestUser3", user_tag="TestTag3", user_role=1, user_stats=30, user_rep=15) add_user(user_id=3, user_name="TestUser4", user_tag="TestTag4", user_role=2, user_stats=30, user_rep=15) add_user(user_id=4, user_name="TestUser2", user_tag="TestTag2", user_role=3, user_stats=30, user_rep=15) async def test_check_admin_permission(cls): cls.assertTrue(await cls.roles.check_admin_permission(1)) cls.assertFalse(await cls.roles.check_admin_permission(2)) cls.assertFalse(await cls.roles.check_admin_permission(3)) cls.assertFalse(await cls.roles.check_admin_permission(4)) async def test_check_moderator_permission(cls): cls.assertTrue(await cls.roles.check_moderator_permission(2)) cls.assertFalse(await cls.roles.check_moderator_permission(0)) cls.assertFalse(await cls.roles.check_moderator_permission(1)) cls.assertFalse(await cls.roles.check_moderator_permission(3)) async def test_get_role_name(cls): cls.assertEqual(await cls.roles.get_role_name(cls.roles.admin_role_id), "ADMIN") cls.assertEqual(await cls.roles.get_role_name(cls.roles.moderator_role_id), "MODERATOR") cls.assertEqual(await cls.roles.get_role_name(cls.roles.user_role_id), "USER") cls.assertEqual(await cls.roles.get_role_name(cls.roles.bot_role_id), "BOT") with cls.assertRaises(ValueError): await cls.roles.get_role_name(999) # Несуществующий ID роли @classmethod def tearDownClass(cls): cls.database.close() os.system(f"rm {cls.path}") if __name__ == '__main__': unittest.main()