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)
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")
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")
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') )
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 ) )