Convert synapse.server_notices to async/await. (#7394)

This commit is contained in:
Patrick Cloke 2020-05-01 15:28:59 -04:00 committed by GitHub
parent b0cbc57375
commit 032e5a2aca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 11 deletions

1
changelog.d/7394.misc Normal file
View File

@ -0,0 +1 @@
Convert synapse.server_notices to async/await.

View File

@ -16,8 +16,6 @@ import logging
from six import iteritems from six import iteritems
from twisted.internet import defer
from synapse.api.constants import ( from synapse.api.constants import (
EventTypes, EventTypes,
LimitBlockingTypes, LimitBlockingTypes,
@ -167,8 +165,7 @@ class ResourceLimitsServerNotices(object):
user_id, content, EventTypes.Pinned, "" user_id, content, EventTypes.Pinned, ""
) )
@defer.inlineCallbacks async def _check_and_set_tags(self, user_id, room_id):
def _check_and_set_tags(self, user_id, room_id):
""" """
Since server notices rooms were originally not with tags, Since server notices rooms were originally not with tags,
important to check that tags have been set correctly important to check that tags have been set correctly
@ -176,20 +173,19 @@ class ResourceLimitsServerNotices(object):
user_id(str): the user in question user_id(str): the user in question
room_id(str): the server notices room for that user room_id(str): the server notices room for that user
""" """
tags = yield self._store.get_tags_for_room(user_id, room_id) tags = await self._store.get_tags_for_room(user_id, room_id)
need_to_set_tag = True need_to_set_tag = True
if tags: if tags:
if SERVER_NOTICE_ROOM_TAG in tags: if SERVER_NOTICE_ROOM_TAG in tags:
# tag already present, nothing to do here # tag already present, nothing to do here
need_to_set_tag = False need_to_set_tag = False
if need_to_set_tag: if need_to_set_tag:
max_id = yield self._store.add_tag_to_room( max_id = await self._store.add_tag_to_room(
user_id, room_id, SERVER_NOTICE_ROOM_TAG, {} user_id, room_id, SERVER_NOTICE_ROOM_TAG, {}
) )
self._notifier.on_new_event("account_data_key", max_id, users=[user_id]) self._notifier.on_new_event("account_data_key", max_id, users=[user_id])
@defer.inlineCallbacks async def _is_room_currently_blocked(self, room_id):
def _is_room_currently_blocked(self, room_id):
""" """
Determines if the room is currently blocked Determines if the room is currently blocked
@ -207,7 +203,7 @@ class ResourceLimitsServerNotices(object):
currently_blocked = False currently_blocked = False
pinned_state_event = None pinned_state_event = None
try: try:
pinned_state_event = yield self._state.get_current_state( pinned_state_event = await self._state.get_current_state(
room_id, event_type=EventTypes.Pinned room_id, event_type=EventTypes.Pinned
) )
except AuthError: except AuthError:
@ -218,7 +214,7 @@ class ResourceLimitsServerNotices(object):
if pinned_state_event is not None: if pinned_state_event is not None:
referenced_events = list(pinned_state_event.content.get("pinned", [])) referenced_events = list(pinned_state_event.content.get("pinned", []))
events = yield self._store.get_events(referenced_events) events = await self._store.get_events(referenced_events)
for event_id, event in iteritems(events): for event_id, event in iteritems(events):
if event.type != EventTypes.Message: if event.type != EventTypes.Message:
continue continue

View File

@ -67,7 +67,7 @@ class TestResourceLimitsServerNotices(unittest.HomeserverTestCase):
return_value=defer.succeed("!something:localhost") return_value=defer.succeed("!something:localhost")
) )
self._rlsn._store.add_tag_to_room = Mock(return_value=defer.succeed(None)) self._rlsn._store.add_tag_to_room = Mock(return_value=defer.succeed(None))
self._rlsn._store.get_tags_for_room = Mock(return_value={}) self._rlsn._store.get_tags_for_room = Mock(return_value=defer.succeed({}))
self.hs.config.admin_contact = "mailto:user@test.com" self.hs.config.admin_contact = "mailto:user@test.com"
def test_maybe_send_server_notice_to_user_flag_off(self): def test_maybe_send_server_notice_to_user_flag_off(self):