Fix up the various presence-related tests so that if they're not skipped, they still PASS

This commit is contained in:
Paul "LeoNerd" Evans 2014-08-27 18:29:45 +01:00
parent 407c86c013
commit d027e859cd
3 changed files with 26 additions and 12 deletions

View File

@ -92,10 +92,7 @@ class PresenceStateTestCase(unittest.TestCase):
self.datastore.is_presence_visible = is_presence_visible self.datastore.is_presence_visible = is_presence_visible
# Mock the RoomMemberHandler # Mock the RoomMemberHandler
room_member_handler = Mock(spec=[ room_member_handler = Mock(spec=[])
"get_rooms_for_user",
"get_room_members",
])
hs.handlers.room_member_handler = room_member_handler hs.handlers.room_member_handler = room_member_handler
logging.getLogger().debug("Mocking room_member_handler=%r", room_member_handler) logging.getLogger().debug("Mocking room_member_handler=%r", room_member_handler)
@ -122,6 +119,11 @@ class PresenceStateTestCase(unittest.TestCase):
return defer.succeed([]) return defer.succeed([])
room_member_handler.get_room_members = get_room_members room_member_handler.get_room_members = get_room_members
def do_users_share_a_room(userlist):
shared = all(map(lambda u: u in self.room_members, userlist))
return defer.succeed(shared)
self.datastore.do_users_share_a_room = do_users_share_a_room
self.mock_start = Mock() self.mock_start = Mock()
self.mock_stop = Mock() self.mock_stop = Mock()

View File

@ -102,6 +102,10 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
]) ])
self.datastore.get_presence_list = get_presence_list self.datastore.get_presence_list = get_presence_list
def do_users_share_a_room(userlist):
return defer.succeed(False)
self.datastore.do_users_share_a_room = do_users_share_a_room
self.handlers = hs.get_handlers() self.handlers = hs.get_handlers()
self.mock_update_client = Mock() self.mock_update_client = Mock()

View File

@ -229,11 +229,19 @@ class PresenceEventStreamTestCase(unittest.TestCase):
# HIDEOUS HACKERY # HIDEOUS HACKERY
# TODO(paul): This should be injected in via the HomeServer DI system # TODO(paul): This should be injected in via the HomeServer DI system
from synapse.handlers.events import EventStreamHandler from synapse.streams.events import (
from synapse.handlers.presence import PresenceStreamData PresenceSource, NullSource, EventSources
EventStreamHandler.stream_data_classes = [ )
PresenceStreamData
] old_SOURCE_TYPES = EventSources.SOURCE_TYPES
def tearDown():
EventSources.SOURCE_TYPES = old_SOURCE_TYPES
self.tearDown = tearDown
EventSources.SOURCE_TYPES = {
k: NullSource for k in old_SOURCE_TYPES.keys()
}
EventSources.SOURCE_TYPES["presence"] = PresenceSource
hs = HomeServer("test", hs = HomeServer("test",
db_pool=None, db_pool=None,
@ -288,7 +296,7 @@ class PresenceEventStreamTestCase(unittest.TestCase):
# all be ours # all be ours
# I'll already get my own presence state change # I'll already get my own presence state change
self.assertEquals({"start": "1", "end": "1", "chunk": []}, response) self.assertEquals({"start": "0_1", "end": "0_1", "chunk": []}, response)
self.mock_datastore.set_presence_state.return_value = defer.succeed( self.mock_datastore.set_presence_state.return_value = defer.succeed(
{"state": ONLINE}) {"state": ONLINE})
@ -299,10 +307,10 @@ class PresenceEventStreamTestCase(unittest.TestCase):
state={"state": ONLINE}) state={"state": ONLINE})
(code, response) = yield self.mock_resource.trigger("GET", (code, response) = yield self.mock_resource.trigger("GET",
"/events?from=1&timeout=0", None) "/events?from=0_1&timeout=0", None)
self.assertEquals(200, code) self.assertEquals(200, code)
self.assertEquals({"start": "1", "end": "2", "chunk": [ self.assertEquals({"start": "0_1", "end": "0_2", "chunk": [
{"type": "m.presence", {"type": "m.presence",
"content": { "content": {
"user_id": "@banana:test", "user_id": "@banana:test",