コード例 #1
0
async def add_code(ctx, group_name, code):
    """Add a code to a promo group."""
    logging.info("Tentando adicionar o código %s ao grupo %s", code,
                 group_name)
    if not validate_code(code):
        await ctx.send(
            "Código inválido: o código deve ser apenas letras, números e traços (-)"
        )  # noqa E501
        return
    try:
        group = PromoCodeGroup.get((PromoCodeGroup.guild_id == ctx.guild.id)
                                   & (PromoCodeGroup.name == group_name))
        PromoCode.create(group=group, code=code)
        await ctx.send(
            "Código {0} cadastrado no grupo {1} com sucesso!".format(
                code, group_name))
    except PromoCodeGroup.DoesNotExist:  # pylint: disable=no-member
        await ctx.send(
            "Grupo de códigos promocionais não encontrado: {}".format(
                group_name))
    except IntegrityError:
        await ctx.send("Código {0} já cadastrado no grupo {1}".format(
            code, group_name))
コード例 #2
0
    def test_add_group(self):
        ctx = FakeContext()
        asyncio.run(add_group(ctx, group_name='foo'))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters, "Grupo foo criado")

        group = PromoCodeGroup.get((PromoCodeGroup.guild_id == ctx.guild.id)
                                   & (PromoCodeGroup.name == 'foo'))

        self.assertEqual(group.guild_id, ctx.guild.id)
        self.assertEqual(group.name, 'foo')

        ctx = FakeContext()
        asyncio.run(add_group(ctx, group_name='foo'))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters, "Grupo já existente")

        ctx = FakeContext(guild=FakeGuild2())
        asyncio.run(add_group(ctx, group_name='foo'))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters, "Grupo foo criado")