Skip to content

Commit cbf6d61

Browse files
committed
Warn on Any return
1 parent 95c86c1 commit cbf6d61

4 files changed

Lines changed: 14 additions & 6 deletions

File tree

discord/ext/test/backend.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from discord.types import member
2323
from requests import Response
24-
from typing import NamedTuple, Any, ClassVar, NoReturn, Literal, Pattern, overload, Sequence, Iterable
24+
from typing import NamedTuple, Any, ClassVar, NoReturn, Literal, Pattern, overload, Sequence, Iterable, reveal_type
2525

2626
from . import factories as facts, state as dstate, callbacks, websocket, _types
2727
from ._types import Undef, undefined
@@ -391,16 +391,18 @@ async def get_members(
391391
async def get_member(self, guild_id: Snowflake,
392392
member_id: Snowflake) -> _types.member.MemberWithUser:
393393
locs = _get_higher_locs(1)
394-
guild = locs["self"]
394+
guild: discord.Guild = locs["self"]
395395
member = discord.utils.get(guild.members, id=member_id)
396+
if member is None:
397+
raise ValueError(f"No member {member_id} in guild {guild_id}")
396398

397399
return facts.dict_from_object(member)
398400

399401
async def edit_role(self, guild_id: Snowflake, role_id: Snowflake, *,
400402
reason: str | None = None,
401403
**fields: Any) -> _types.role.Role:
402404
locs = _get_higher_locs(1)
403-
role = locs["self"]
405+
role: discord.Role = locs["self"]
404406
guild = role.guild
405407

406408
await callbacks.dispatch_event(CallbackEvent.edit_role, guild, role, fields, reason=reason)
@@ -538,9 +540,11 @@ async def get_from_cdn(self, url: str) -> bytes:
538540
async def get_user(self, user_id: Snowflake) -> _types.user.User:
539541
# return self.request(Route('GET', '/users/{user_id}', user_id=user_id))
540542
locs = _get_higher_locs(1)
541-
client = locs["self"]
543+
client: discord.Client = locs["self"]
542544
guild = client.guilds[0]
543545
member = discord.utils.get(guild.members, id=user_id)
546+
if member is None:
547+
raise ValueError(f"Failed to locate user {user_id} in test state")
544548
return facts.dict_from_object(member._user)
545549

546550
async def pin_message(self, channel_id: Snowflake, message_id: Snowflake,

discord/ext/test/state.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def __init__(self, client: discord.Client, http: dhttp.HTTPClient, user: discord
5050

5151
real_disp = self.dispatch
5252

53-
def dispatch(*args: Any, **kwargs: Any) -> T | None:
53+
def dispatch(*args: Any, **kwargs: Any) -> Any | None:
5454
if not self._do_dispatch:
5555
return None
5656
return real_disp(*args, **kwargs)

discord/ext/test/utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"""
55

66
import asyncio
7+
import collections
78
from typing import TypeVar
89

910
import discord
@@ -80,10 +81,12 @@ class PeekableQueue(asyncio.Queue[T]):
8081
internal artifacts
8182
"""
8283

84+
_queue: collections.deque[T]
85+
8386
def peek(self) -> T:
8487
"""
8588
Peek the current last value in the queue, or raise an exception if there are no values
8689
8790
:return: Last value in the queue, assuming there are any
8891
"""
89-
return self._queue[-1] # type: ignore[attr-defined]
92+
return self._queue[-1]

mypy.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ packages = discord.ext.test, tests
33

44
warn_redundant_casts = True
55
warn_unused_ignores = True
6+
warn_return_any = True
67

78
strict_equality = True
89

0 commit comments

Comments
 (0)