Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit e0ccd89

Browse files
committed
cachedList will return None values
1 parent 404d517 commit e0ccd89

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

synapse/push/bulk_push_rule_evaluator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ def _condition_checker(
293293
return True
294294

295295

296-
MemberMap = Dict[str, EventIdMembership]
296+
MemberMap = Dict[str, Optional[EventIdMembership]]
297297
Rule = Dict[str, dict]
298298
RulesByUser = Dict[str, List[Rule]]
299299
StateGroup = Union[object, int]
@@ -521,7 +521,7 @@ async def _update_rules_with_member_event_ids(
521521
joined_user_ids = {
522522
entry.user_id
523523
for entry in members.values()
524-
if entry.membership == Membership.JOIN
524+
if entry and entry.membership == Membership.JOIN
525525
}
526526

527527
logger.debug("Joined: %r", joined_user_ids)

synapse/storage/databases/main/roommember.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,16 +1011,21 @@ async def get_rooms_user_has_been_in(self, user_id: str) -> Set[str]:
10111011
@cached(max_entries=5000)
10121012
async def _get_membership_from_event_id(
10131013
self, member_event_id: str
1014-
) -> EventIdMembership:
1014+
) -> Optional[EventIdMembership]:
10151015
raise NotImplementedError()
10161016

10171017
@cachedList(
10181018
cached_method_name="_get_membership_from_event_id", list_name="member_event_ids"
10191019
)
10201020
async def get_membership_from_event_ids(
10211021
self, member_event_ids: Iterable[str]
1022-
) -> Dict[str, EventIdMembership]:
1023-
"""Get user_id and membership of a set of event IDs."""
1022+
) -> Dict[str, Optional[EventIdMembership]]:
1023+
"""Get user_id and membership of a set of event IDs.
1024+
1025+
Returns:
1026+
Mapping from event ID to `EventIdMembership` if the event is a
1027+
membership event, otherwise the value is None.
1028+
"""
10241029

10251030
rows = await self.db_pool.simple_select_many_batch(
10261031
table="room_memberships",

synapse/storage/persist_events.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,7 +1027,8 @@ async def _is_server_still_joined(
10271027
events_to_check
10281028
)
10291029
is_still_joined = any(
1030-
member.membership == Membership.JOIN for member in members.values()
1030+
member and member.membership == Membership.JOIN
1031+
for member in members.values()
10311032
)
10321033
if is_still_joined:
10331034
return True
@@ -1068,7 +1069,7 @@ async def _is_server_still_joined(
10681069
potentially_left_users.update(
10691070
member.user_id
10701071
for member in members.values()
1071-
if member.membership == Membership.JOIN
1072+
if member and member.membership == Membership.JOIN
10721073
)
10731074

10741075
return False

0 commit comments

Comments
 (0)