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"
Exemple #3
0
    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
Exemple #8
0
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