Fix prev_content

This commit is contained in:
Erik Johnston 2014-12-11 15:16:55 +00:00
parent e72b16f9a3
commit 9191292b0f
3 changed files with 16 additions and 3 deletions

View file

@ -113,6 +113,14 @@ def serialize_event(hs, e):
d["redacted_by"] = e.unsigned["redacted_by"] d["redacted_by"] = e.unsigned["redacted_by"]
del d["unsigned"]["redacted_by"] del d["unsigned"]["redacted_by"]
if "replaces_state" in e.unsigned:
d["replaces_state"] = e.unsigned["replaces_state"]
del d["unsigned"]["replaces_state"]
if "prev_content" in e.unsigned:
d["prev_content"] = e.unsigned["prev_content"]
del d["unsigned"]["prev_content"]
del d["auth_events"] del d["auth_events"]
del d["prev_events"] del d["prev_events"]
del d["hashes"] del d["hashes"]

View file

@ -487,6 +487,12 @@ class SQLBaseStore(object):
if because: if because:
ev.unsigned["redacted_because"] = because ev.unsigned["redacted_because"] = because
if "replaces_state" in ev.unsigned:
ev.unsigned["prev_content"] = self._get_event_txn(
txn,
ev.unsigned["replaces_state"],
).get_dict()["content"]
return ev return ev
def _parse_events(self, rows): def _parse_events(self, rows):

View file

@ -58,7 +58,7 @@ class StreamStoreTestCase(unittest.TestCase):
self.depth = 1 self.depth = 1
@defer.inlineCallbacks @defer.inlineCallbacks
def inject_room_member(self, room, user, membership, replaces_state=None): def inject_room_member(self, room, user, membership):
self.depth += 1 self.depth += 1
builder = self.event_builder_factory.new({ builder = self.event_builder_factory.new({
@ -215,7 +215,6 @@ class StreamStoreTestCase(unittest.TestCase):
event2 = yield self.inject_room_member( event2 = yield self.inject_room_member(
self.room1, self.u_alice, Membership.JOIN, self.room1, self.u_alice, Membership.JOIN,
replaces_state=event1.event_id,
) )
end = yield self.store.get_room_events_max_id() end = yield self.store.get_room_events_max_id()
@ -233,6 +232,6 @@ class StreamStoreTestCase(unittest.TestCase):
event = results[0] event = results[0]
self.assertTrue( self.assertTrue(
hasattr(event, "prev_content"), "prev_content" in event.unsigned,
msg="No prev_content key" msg="No prev_content key"
) )