Skip to content

Commit

Permalink
test fixes and additions
Browse files Browse the repository at this point in the history
  • Loading branch information
FasterSpeeding committed Jun 4, 2021
1 parent 2f2ae88 commit e06d7d0
Show file tree
Hide file tree
Showing 7 changed files with 941 additions and 622 deletions.
4 changes: 2 additions & 2 deletions hikari/impl/entity_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ def presences(self) -> typing.Mapping[snowflakes.Snowflake, presence_models.Memb
return self._presences

def roles(self) -> typing.Mapping[snowflakes.Snowflake, guild_models.Role]:
if not self._roles:
if self._roles is None:
self._roles = {
snowflakes.Snowflake(role["id"]): self._entity_factory.deserialize_role(role, guild_id=self.id)
for role in self._payload["roles"]
Expand Down Expand Up @@ -1555,7 +1555,7 @@ def deserialize_rest_guild(self, payload: data_binding.JSONObject) -> guild_mode
)

def deserialize_gateway_guild(self, payload: data_binding.JSONObject) -> entity_factory.GatewayGuildDefinition:
guild_id = snowflakes.Snowflake(payload["guild_id"])
guild_id = snowflakes.Snowflake(payload["id"])
return _GatewayGuildDefinition(id=guild_id, payload=payload, entity_factory=self)

#################
Expand Down
6 changes: 4 additions & 2 deletions hikari/impl/event_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,8 @@ async def on_guild_create(self, shard: gateway_shard.GatewayShard, payload: data
event = None
channels = None
emojis = None
guild = None
guild_id = snowflakes.Snowflake(payload["id"])
members = None
presences = None
roles = None
Expand Down Expand Up @@ -252,7 +254,7 @@ async def on_guild_update(self, shard: gateway_shard.GatewayShard, payload: data
roles = gd.roles() if self._cache_enabled_for(config.CacheComponents.ROLES) else None

elif enabled_for_event:
guild_id = snowflakes.Snowflake(payload["guild_id"])
guild_id = snowflakes.Snowflake(payload["id"])
old = self._cache.get_guild(guild_id) if self._cache else None
event = self._app.event_factory.deserialize_guild_update_event(shard, payload, old_guild=old)
emojis = event.emojis
Expand Down Expand Up @@ -295,7 +297,7 @@ async def on_guild_update(self, shard: gateway_shard.GatewayShard, payload: data
async def on_guild_delete(self, shard: gateway_shard.GatewayShard, payload: data_binding.JSONObject) -> None:
"""See https://discord.com/developers/docs/topics/gateway#guild-delete for more info."""
event: typing.Union[guild_events.GuildUnavailableEvent, guild_events.GuildLeaveEvent]
if payload.get("unavailable", False):
if payload.get("unavailable"):
event = self._app.event_factory.deserialize_guild_unavailable_event(shard, payload)

if self._cache:
Expand Down
12 changes: 9 additions & 3 deletions hikari/impl/event_manager_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,15 +127,21 @@ def decorator(method: UnboundMethodT[EventManagerBaseT], /) -> UnboundMethodT[Ev

@attr.frozen()
class _Consumer:
callback: ConsumerT
callback: ConsumerT = attr.ib()
"""The callback function for this consumer."""

cache_components: undefined.UndefinedOr[config.CacheComponents]
cache_components: undefined.UndefinedOr[config.CacheComponents] = attr.ib()
"""Bitfield of the cache components this consumer makes modifying calls to, if set."""

event_types: undefined.UndefinedOr[typing.Sequence[typing.Type[base_events.Event]]]
event_types: undefined.UndefinedOr[typing.Sequence[typing.Type[base_events.Event]]] = attr.ib()
"""A sequence of the types of events this consumer dispatches to, if set."""

def __attrs_post_init__(self) -> None:
# Letting only one be UNDEFINED just doesn't make sense as either being undefined leads to filtering being
# skipped all together making the other redundant.
if undefined.count(self.cache_components, self.event_types) == 1:
raise ValueError("cache_components and event_types must both either be undefined or defined")


class EventManagerBase(event_manager.EventManager):
"""Provides functionality to consume and dispatch events.
Expand Down
Loading

0 comments on commit e06d7d0

Please sign in to comment.