Skip to content

Commit

Permalink
add assertions to test right serialization of command
Browse files Browse the repository at this point in the history
  • Loading branch information
Mihitoko committed Oct 13, 2023
1 parent a04786a commit 2d78f7b
Showing 1 changed file with 42 additions and 6 deletions.
48 changes: 42 additions & 6 deletions tests/test_typing_annotated.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
from typing import Optional

import pytest
from typing_extensions import Annotated

import discord
from discord import ApplicationContext
from discord import SlashCommandOptionType
from discord.commands.core import SlashCommand, slash_command


Expand All @@ -15,6 +14,8 @@ async def echo(ctx, txt: Annotated[str, discord.Option()]):
cmd = SlashCommand(echo)
bot = discord.Bot()
bot.add_application_command(cmd)
dict_result = cmd.to_dict()
assert dict_result.get("options")[0].get("type") == SlashCommandOptionType.string.value


def test_typing_annotated_decorator():
Expand All @@ -24,6 +25,12 @@ def test_typing_annotated_decorator():
async def echo(ctx, txt: Annotated[str, discord.Option(description="Some text")]):
await ctx.respond(txt)

dict_result = echo.to_dict()

option = dict_result.get("options")[0]
assert option.get("type") == SlashCommandOptionType.string.value
assert option.get("description") == "Some text"


def test_typing_annotated_cog():
class echoCog(discord.Cog):
Expand All @@ -33,12 +40,19 @@ def __init__(self, bot_) -> None:

@slash_command()
async def echo(
self, ctx, txt: Annotated[str, discord.Option(description="Some text")]
self, ctx, txt: Annotated[str, discord.Option(description="Some text")]
):
await ctx.respond(txt)

bot = discord.Bot()
bot.add_cog(echoCog(bot))
cog = echoCog(bot)
bot.add_cog(cog)

dict_result = cog.echo.to_dict()

option = dict_result.get("options")[0]
assert option.get("type") == SlashCommandOptionType.string.value
assert option.get("description") == "Some text"


def test_typing_annotated_cog_slashgroup():
Expand All @@ -51,12 +65,19 @@ def __init__(self, bot_) -> None:

@grp.command()
async def echo(
self, ctx, txt: Annotated[str, discord.Option(description="Some text")]
self, ctx, txt: Annotated[str, discord.Option(description="Some text")]
):
await ctx.respond(txt)

bot = discord.Bot()
bot.add_cog(echoCog(bot))
cog = echoCog(bot)
bot.add_cog(cog)

dict_result = cog.echo.to_dict()

option = dict_result.get("options")[0]
assert option.get("type") == SlashCommandOptionType.string.value
assert option.get("description") == "Some text"


def test_typing_annotated_optional():
Expand All @@ -67,6 +88,11 @@ async def echo(ctx, txt: Annotated[Optional[str], discord.Option()]):
bot = discord.Bot()
bot.add_application_command(cmd)

dict_result = cmd.to_dict()

option = dict_result.get("options")[0]
assert option.get("type") == SlashCommandOptionType.string.value


def test_no_annotation():
async def echo(ctx, txt: str):
Expand All @@ -76,6 +102,11 @@ async def echo(ctx, txt: str):
bot = discord.Bot()
bot.add_application_command(cmd)

dict_result = cmd.to_dict()

option = dict_result.get("options")[0]
assert option.get("type") == SlashCommandOptionType.string.value


def test_annotated_no_option():
async def echo(ctx, txt: Annotated[str, "..."]):
Expand All @@ -84,3 +115,8 @@ async def echo(ctx, txt: Annotated[str, "..."]):
cmd = SlashCommand(echo)
bot = discord.Bot()
bot.add_application_command(cmd)

dict_result = cmd.to_dict()

option = dict_result.get("options")[0]
assert option.get("type") == SlashCommandOptionType.string.value

0 comments on commit 2d78f7b

Please sign in to comment.