From 03dc63f6c86f82743b53adadf7d442d6b478a1bf Mon Sep 17 00:00:00 2001 From: "Paul \"LeoNerd\" Evans" Date: Wed, 19 Nov 2014 17:30:35 +0000 Subject: [PATCH] Initialise UserPresenceCache instances to always contain a 'presence' key --- synapse/handlers/presence.py | 6 ++---- tests/handlers/test_presence.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/synapse/handlers/presence.py b/synapse/handlers/presence.py index 325ae4525..fcc92a8e3 100644 --- a/synapse/handlers/presence.py +++ b/synapse/handlers/presence.py @@ -139,9 +139,7 @@ class PresenceHandler(BaseHandler): if user in self._user_cachemap: return self._user_cachemap[user] else: - statuscache = UserPresenceCache() - statuscache.update({"presence": PresenceState.OFFLINE}, user) - return statuscache + return UserPresenceCache() def registered_user(self, user): self.store.create_presence(user.localpart) @@ -873,7 +871,7 @@ class UserPresenceCache(object): Includes the update timestamp. """ def __init__(self): - self.state = {} + self.state = {"presence": PresenceState.OFFLINE} self.serial = None def update(self, state, serial): diff --git a/tests/handlers/test_presence.py b/tests/handlers/test_presence.py index cdaf93429..fe69ce47e 100644 --- a/tests/handlers/test_presence.py +++ b/tests/handlers/test_presence.py @@ -1200,7 +1200,10 @@ class PresencePollingTestCase(unittest.TestCase): path=ANY, data=_expect_edu("remote", "m.presence", content={ - "push": [ {"user_id": "@clementine:test" }], + "push": [ { + "user_id": "@clementine:test", + "presence": OFFLINE, + }], }, ), json_data_callback=ANY, @@ -1229,7 +1232,10 @@ class PresencePollingTestCase(unittest.TestCase): path=ANY, data=_expect_edu("remote", "m.presence", content={ - "push": [ {"user_id": "@fig:test" }], + "push": [ { + "user_id": "@fig:test", + "presence": OFFLINE, + }], }, ), json_data_callback=ANY,