def test_getCurrentRolesSuccess(self): role1 = RoleUtil.updateRole(123, 321, "testing", "0x000345") role2 = RoleUtil.updateRole(123, 123, "onetwothree", "0x000543") roleList = RoleUtil.getCurrentRoles(123) assert len(roleList) == 2 assert roleList[0] == role1 assert roleList[1] == role2
def test_updateRoleUpdateOldOne(self): RoleUtil.updateRole(123, 321, "testing", "0x000345") role: KfpRole = RoleUtil.updateRole(123, 321, "onetwothree", "0x000543") assert role.role_name == "onetwothree" assert role.color == "0x000543"
async def initialize_roles(self, ctx: commands.Context, *argv): # if not await self.canUseCommand(ctx): # return msg = await ctx.channel.send('初始化身分組: KFP 預設...') for data in ROLE_DATA: for role_dic in data: role_matcher = role_dic['matcher'] role_name = role_dic['name'] roles: Role = self.findRole(ctx.guild.roles, role_matcher) if len(roles) > 0: await msg.edit(content=str(msg.content) + "\n{}已經存在... 合併現有資料".format(roles[0].name)) else: await msg.edit(content=str(msg.content) + "\n創建身分組{}... ".format(role_name)) role = await ctx.guild.create_role( name=role_name, permissions=Permissions(permissions=0), colour=Color(role_dic['color']), mentionable=False, hoist=False) await msg.edit(content=str(msg.content) + "完成".format(role_name)) if len(roles) > 0: role = roles[0] kfpRole: KfpRole = RoleUtil.updateRole(ctx.guild.id, role.id, role.name, role.color, role_dic["category"]) RoleUtil.updateKfpRoleLevel(kfpRole, role_dic['level']) await ctx.channel.send("身分組初始化完成.")
def test_getRoleFromLevel(self): role0 = RoleUtil.updateRole(123, 100, "other roles", "0x000345") RoleUtil.updateKfpRoleLevel(role0, 0) role1 = RoleUtil.updateRole(123, 321, "testing", "0x000345", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role1, 10) role2 = RoleUtil.updateRole(123, 123, "onetwothree", "0x000543", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role2, 20) role = RoleUtil.getKfpRoleFromLevel(123, 9) assert not role role = RoleUtil.getKfpRoleFromLevel(123, 11) assert role == role1 role = RoleUtil.getKfpRoleFromLevel(123, 20) assert role == role2
def test_updateRoleCreateNewOne(self): role: KfpRole = RoleUtil.updateRole(123, 321, "testing", "0x000345") assert role.guild_id == 123 assert role.role_id == 321 assert role.role_name == "testing" assert role.color == "0x000345"
def test_getRoleBeforeLevel(self): role1 = RoleUtil.updateRole(123, 321, "testing", "0x000345", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role1, 10) role2 = RoleUtil.updateRole(123, 123, "onetwothree", "0x000543", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role2, 20) role = RoleUtil.getKfpRolesBeforeLevel(123, 9) assert len(role) == 0 role = RoleUtil.getKfpRolesBeforeLevel(123, 11) assert role[0] == role1 role = RoleUtil.getKfpRolesBeforeLevel(123, 20) assert role[0] == role1 role = RoleUtil.getKfpRolesBeforeLevel(123, 21) assert role[0] == role2 assert role[1] == role1
def test_getCurrentRolesSuccess_level(self): role1 = RoleUtil.updateRole(123, 100, "first", "0x000345", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role1, 0) role2 = RoleUtil.updateRole(123, 101, "second", "0x000543", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role2, 20) role3 = RoleUtil.updateRole(123, 102, "third", "0x000543", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role3, 40) role4 = RoleUtil.updateRole(123, 103, "fourth", "0x000543", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role4, 60) role5 = RoleUtil.updateRole(123, 104, "fifth", "0x000543", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role5, 80) role6 = RoleUtil.updateRole(123, 105, "sixth", "0x000543", Util.RoleCategory.KFP_DEFAULT) RoleUtil.updateKfpRoleLevel(role6, 100) role = RoleUtil.getKfpRoleFromLevel(123, 80) assert role == role5
async def on_guild_role_update(before: Role, after: Role): RoleUtil.updateRole(before.guild.id, before.id, after.name, after.color) print(f"updating role with new name {after.name} and color {after.color}")
def test_updateKfpRoleLevelSuccess(self): RoleUtil.updateRole(123, 321, "testing", "0x000345") role: KfpRole = RoleUtil.getRole(123, 321) RoleUtil.updateKfpRoleLevel(role, 20) assert role.level == 20
def test_updateKfpRoleLevelZero(self): RoleUtil.updateRole(123, 321, "testing", "0x000345") role: KfpRole = RoleUtil.getRole(123, 321) assert role.level == 0