mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-08-06 03:34:14 -04:00
Add a class UnpersistedEventContext to allow for the batching up of storing state groups (#14675)
* add class UnpersistedEventContext * modify create new client event to create unpersistedeventcontexts * persist event contexts after creation * fix tests to persist unpersisted event contexts * cleanup * misc lints + cleanup * changelog + fix comments * lints * fix batch insertion? * reduce redundant calculation * add unpersisted event classes * rework compute_event_context, split into function that returns unpersisted event context and then persists it * use calculate_context_info to create unpersisted event contexts * update typing * $%#^&* * black * fix comments and consolidate classes, use attr.s for class * requested changes * lint * requested changes * requested changes * refactor to be stupidly explicit * clearer renaming and flow * make partial state non-optional * update docstrings --------- Co-authored-by: Erik Johnston <erik@matrix.org>
This commit is contained in:
parent
c1d2ce2901
commit
03bccd542b
14 changed files with 369 additions and 172 deletions
|
@ -74,10 +74,12 @@ class RedactionTestCase(unittest.HomeserverTestCase):
|
|||
},
|
||||
)
|
||||
|
||||
event, context = self.get_success(
|
||||
event, unpersisted_context = self.get_success(
|
||||
self.event_creation_handler.create_new_client_event(builder)
|
||||
)
|
||||
|
||||
context = self.get_success(unpersisted_context.persist(event))
|
||||
|
||||
self.get_success(self._persistence.persist_event(event, context))
|
||||
|
||||
return event
|
||||
|
@ -96,10 +98,12 @@ class RedactionTestCase(unittest.HomeserverTestCase):
|
|||
},
|
||||
)
|
||||
|
||||
event, context = self.get_success(
|
||||
event, unpersisted_context = self.get_success(
|
||||
self.event_creation_handler.create_new_client_event(builder)
|
||||
)
|
||||
|
||||
context = self.get_success(unpersisted_context.persist(event))
|
||||
|
||||
self.get_success(self._persistence.persist_event(event, context))
|
||||
|
||||
return event
|
||||
|
@ -119,10 +123,12 @@ class RedactionTestCase(unittest.HomeserverTestCase):
|
|||
},
|
||||
)
|
||||
|
||||
event, context = self.get_success(
|
||||
event, unpersisted_context = self.get_success(
|
||||
self.event_creation_handler.create_new_client_event(builder)
|
||||
)
|
||||
|
||||
context = self.get_success(unpersisted_context.persist(event))
|
||||
|
||||
self.get_success(self._persistence.persist_event(event, context))
|
||||
|
||||
return event
|
||||
|
@ -259,7 +265,7 @@ class RedactionTestCase(unittest.HomeserverTestCase):
|
|||
def internal_metadata(self) -> _EventInternalMetadata:
|
||||
return self._base_builder.internal_metadata
|
||||
|
||||
event_1, context_1 = self.get_success(
|
||||
event_1, unpersisted_context_1 = self.get_success(
|
||||
self.event_creation_handler.create_new_client_event(
|
||||
cast(
|
||||
EventBuilder,
|
||||
|
@ -280,9 +286,11 @@ class RedactionTestCase(unittest.HomeserverTestCase):
|
|||
)
|
||||
)
|
||||
|
||||
context_1 = self.get_success(unpersisted_context_1.persist(event_1))
|
||||
|
||||
self.get_success(self._persistence.persist_event(event_1, context_1))
|
||||
|
||||
event_2, context_2 = self.get_success(
|
||||
event_2, unpersisted_context_2 = self.get_success(
|
||||
self.event_creation_handler.create_new_client_event(
|
||||
cast(
|
||||
EventBuilder,
|
||||
|
@ -302,6 +310,8 @@ class RedactionTestCase(unittest.HomeserverTestCase):
|
|||
)
|
||||
)
|
||||
)
|
||||
|
||||
context_2 = self.get_success(unpersisted_context_2.persist(event_2))
|
||||
self.get_success(self._persistence.persist_event(event_2, context_2))
|
||||
|
||||
# fetch one of the redactions
|
||||
|
@ -421,10 +431,12 @@ class RedactionTestCase(unittest.HomeserverTestCase):
|
|||
},
|
||||
)
|
||||
|
||||
redaction_event, context = self.get_success(
|
||||
redaction_event, unpersisted_context = self.get_success(
|
||||
self.event_creation_handler.create_new_client_event(builder)
|
||||
)
|
||||
|
||||
context = self.get_success(unpersisted_context.persist(redaction_event))
|
||||
|
||||
self.get_success(self._persistence.persist_event(redaction_event, context))
|
||||
|
||||
# Now lets jump to the future where we have censored the redaction event
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue