Compare commits

...

1 Commits

Author SHA1 Message Date
Andrew Morgan
258bf0e722 Add a test for the update_presence storage function 2021-05-13 17:51:03 +01:00

View File

@@ -32,13 +32,19 @@ from synapse.handlers.presence import (
handle_timeout,
handle_update,
)
from synapse.rest import admin
from synapse.rest.client.v1 import room
from synapse.types import UserID, get_domain_from_id
from tests import unittest
class PresenceUpdateTestCase(unittest.TestCase):
class PresenceUpdateTestCase(unittest.HomeserverTestCase):
servlets = [admin.register_servlets]
def prepare(self, reactor, clock, homeserver):
self.store = homeserver.get_datastore()
def test_offline_to_online(self):
wheel_timer = Mock()
user_id = "@foo:bar"
@@ -292,6 +298,39 @@ class PresenceUpdateTestCase(unittest.TestCase):
any_order=True,
)
def test_persisting_presence_updates(self):
"""Tests that the latest presence state for each user is persisted correctly"""
# Create some test users and presence states for them
presence_states = []
for i in range(5):
user_id = self.register_user(f"user_{i}", "password")
presence_state = UserPresenceState(
user_id=user_id,
state="online",
last_active_ts=1,
last_federation_update_ts=1,
last_user_sync_ts=1,
status_msg="I'm online!",
currently_active=True,
)
presence_states.append(presence_state)
# Persist these presence updates to the database
self.get_success(self.store.update_presence(presence_states))
# Check that each update is present in the database
db_presence_states = self.get_success(
self.store.get_all_presence_updates(
instance_name="master",
last_id=0,
current_id=len(presence_states) + 1,
limit=len(presence_states),
)
)
self.assertEqual(presence_states, db_presence_states)
class PresenceTimeoutTestCase(unittest.TestCase):
def test_idle_timer(self):