示例#1
0
    def test_group_has_code_and_user_has_not_yet_received_one(self):
        ctx = FakeContext()
        user = FakeUser()
        group = PromoCodeGroup.create(guild_id=ctx.guild.id, name='foo')
        promo_code = PromoCode.create(group=group, code='ASDF-1234')
        asyncio.run(send_code(ctx,
                              group_name='foo',
                              users=[user],
                              is_authorized_or_owner=returns_false))

        self.assertTrue(ctx.author.send_called)
        self.assertEqual(
            ctx.author.send_parameters,
            "Código {} enviado para o usuário {}".format(promo_code.code,
                                                         user.name)
        )

        self.assertTrue(user.send_called)
        self.assertEqual(
            user.send_parameters,
            "Olá! Você ganhou um código: {}".format(promo_code.code)
        )

        saved_promo_code = PromoCode.get(group=group, code=promo_code.code)

        self.assertEqual(saved_promo_code.sent_to_name, user.name)
        self.assertEqual(saved_promo_code.sent_to_id, user.id)
        self.assertIsNotNone(saved_promo_code.sent_at)
示例#2
0
    def test_group_does_not_exist(self):
        ctx = FakeContext()
        user = FakeUser()
        asyncio.run(send_code(ctx, group_name='foo', users=[user]))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters, "Grupo foo não existe")
示例#3
0
    def test_group_exist_in_another_guild(self):
        ctx = FakeContext()
        user = FakeUser()
        guild2 = FakeGuild2()
        PromoCodeGroup.create(guild_id=guild2.id, name='foo')
        asyncio.run(send_code(ctx, group_name='foo', users=[user]))

        self.assertTrue(ctx.send_called)
        self.assertEqual(ctx.send_parameters, "Grupo foo não existe")
示例#4
0
    def test_group_has_code_and_user_has_already_received_one(self):
        ctx = FakeContext()
        user = FakeUser()
        group = PromoCodeGroup.create(guild_id=ctx.guild.id, name='foo')
        PromoCode.create(group=group, code='ASDF-1234', sent_to_id=user.id)
        asyncio.run(send_code(ctx,
                              group_name='foo',
                              users=[user],
                              is_authorized_or_owner=returns_false))

        self.assertTrue(ctx.send_called)
        self.assertEqual(
            ctx.send_parameters,
            "Usuário {0} já resgatou código do grupo {1}".format(user.name,
                                                                 'foo')
        )
示例#5
0
    def test_group_doesnt_have_codes_available(self):
        ctx = FakeContext()
        user = FakeUser()
        user2 = FakeUser2()
        group = PromoCodeGroup.create(guild_id=ctx.guild.id, name='foo')
        PromoCode.create(group=group,
                         code='ASDF-1234',
                         sent_to_name=user.name,
                         sent_to_id=user.id)
        asyncio.run(send_code(ctx,
                              group_name='foo',
                              users=[user2],
                              is_authorized_or_owner=returns_false))

        self.assertTrue(ctx.author.send_called)
        self.assertEqual(
            ctx.send_parameters,
            "Grupo {} não possui mais códigos disponíveis".format(
                group.name
            )
        )