mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 09:16:06 -04:00
Additional tests for third-party event rules (#8468)
* Optimise and test state fetching for 3p event rules Getting all the events at once is much more efficient than getting them individually * Test that 3p event rules can modify events
This commit is contained in:
parent
9c0b168cff
commit
a024461130
3 changed files with 79 additions and 18 deletions
|
@ -61,12 +61,14 @@ class ThirdPartyEventRules:
|
|||
prev_state_ids = await context.get_prev_state_ids()
|
||||
|
||||
# Retrieve the state events from the database.
|
||||
state_events = {}
|
||||
for key, event_id in prev_state_ids.items():
|
||||
state_events[key] = await self.store.get_event(event_id, allow_none=True)
|
||||
events = await self.store.get_events(prev_state_ids.values())
|
||||
state_events = {(ev.type, ev.state_key): ev for ev in events.values()}
|
||||
|
||||
ret = await self.third_party_rules.check_event_allowed(event, state_events)
|
||||
return ret
|
||||
# The module can modify the event slightly if it wants, but caution should be
|
||||
# exercised, and it's likely to go very wrong if applied to events received over
|
||||
# federation.
|
||||
|
||||
return await self.third_party_rules.check_event_allowed(event, state_events)
|
||||
|
||||
async def on_create_room(
|
||||
self, requester: Requester, config: dict, is_requester_admin: bool
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue