mirror of
https://gitflic.ru/project/maks1ms/ocab.git
synced 2025-11-28 10:21:55 +03:00
51 lines
2.1 KiB
Python
51 lines
2.1 KiB
Python
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()
|