def test_user_is_not_authorized_but_authorized_in_another_guild(self): ctx = FakeContext() guild2 = FakeGuild2() AuthorizedUser.create(guild_id=guild2.id, user_id=ctx.author.id) result = asyncio.run( is_authorized_or_owner(ctx, is_owner=returns_false)) self.assertFalse(result)
def test_has_users_in_different_guild(self): ctx = FakeContext() guild2 = FakeGuild2() AuthorizedUser.create(guild_id=guild2.id, user_id=ctx.author.id) asyncio.run(list_user(ctx, fetch_user=fake_fetch_user)) self.assertTrue(ctx.send_called) self.assertEqual(ctx.send_parameters, "Não há usuários autorizados")
async def add_user(ctx, *, user: User): """Adds a user to the authorized user list.""" logging.info( "Estão tentando adicionar o usuário com ID %s aos usuários autorizados", # noqa E501 user.id) try: AuthorizedUser.create(guild_id=ctx.guild.id, user_id=user.id) await ctx.send("Adicionado usuário {}".format(user.name)) except IntegrityError: await ctx.send("Usuário já autorizado")
def test_user_does_not_exist_in_this_guild(self): user = FakeUser() ctx = FakeContext() guild2 = FakeGuild2() AuthorizedUser.create(guild_id=guild2.id, user_id=user.id) asyncio.run(remove_user(ctx, user=user)) self.assertTrue(ctx.send_called) self.assertEqual(ctx.send_parameters, "Usuário não estava autorizado: {}".format(user.name))
def test_user_exists(self): user = FakeUser() ctx = FakeContext() AuthorizedUser.create(guild_id=ctx.guild.id, user_id=user.id) asyncio.run(remove_user(ctx, user=user)) self.assertTrue(ctx.send_called) self.assertEqual(ctx.send_parameters, "Usuário {} desautorizado".format(user.name))
def test_has_results_in_same_guild(self): user = FakeUser() ctx = FakeContext() AuthorizedUser.create(guild_id=ctx.guild.id, user_id=user.id) asyncio.run(list_user(ctx, fetch_user=fake_fetch_user)) self.assertTrue(ctx.send_called) self.assertEqual( ctx.send_parameters, "Estes são os usuários autorizados: \n- {}".format(user.name))
async def is_authorized_or_owner(ctx, is_owner=bot.is_owner): if await is_owner(ctx.author): return True user = AuthorizedUser.get_or_none( (AuthorizedUser.user_id == ctx.author.id) & (AuthorizedUser.guild_id == ctx.guild.id)) return user is not None
def test_add_user(self): ctx = FakeContext() user = FakeUser() asyncio.run(add_user(ctx, user=user)) self.assertTrue(ctx.send_called) self.assertEqual(ctx.send_parameters, "Adicionado usuário foo") authorized_user = AuthorizedUser.get( (AuthorizedUser.guild_id == ctx.guild.id) & (AuthorizedUser.user_id == user.id)) self.assertEqual(authorized_user.user_id, user.id) ctx = FakeContext() asyncio.run(add_user(ctx, user=user)) self.assertTrue(ctx.send_called) self.assertEqual(ctx.send_parameters, "Usuário já autorizado") ctx = FakeContext(guild=FakeGuild2()) asyncio.run(add_user(ctx, user=user)) self.assertTrue(ctx.send_called) self.assertEqual(ctx.send_parameters, "Adicionado usuário foo")
async def remove_user(ctx, *, user: User): """Removes a user from the authorized user list.""" logging.info( "Estão tentando remover o usuário com ID %s dos usuários autorizados", user.id) query = AuthorizedUser.delete().where( (AuthorizedUser.user_id == user.id) & (AuthorizedUser.guild_id == ctx.guild.id)) rows_removed = query.execute() if rows_removed > 0: await ctx.send("Usuário {} desautorizado".format(user.name)) else: await ctx.send("Usuário não estava autorizado: {}".format(user.name))
async def list_user(ctx, fetch_user=bot.fetch_user): """Lists the authorized users.""" logging.info("Estão tentando listar os usuários autorizados") authorized_users = AuthorizedUser.select().where( AuthorizedUser.guild_id == ctx.guild.id) if authorized_users.count() == 0: # pylint: disable=no-value-for-parameter await ctx.send("Não há usuários autorizados") return output = "Estes são os usuários autorizados: " for authorized_user in authorized_users: discord_user = await fetch_user(authorized_user.user_id) output += "\n- {}".format(discord_user.name) await ctx.send(output)
def test_user_is_authorized(self): ctx = FakeContext() AuthorizedUser.create(guild_id=ctx.guild.id, user_id=ctx.author.id) result = asyncio.run( is_authorized_or_owner(ctx, is_owner=returns_false)) self.assertTrue(result)