diff --git a/tests/__init__.py b/tests/__init__.py
index 2216c0f1ca..9bff9ec169 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/events/__init__.py b/tests/events/__init__.py
index 2216c0f1ca..9bff9ec169 100644
--- a/tests/events/__init__.py
+++ b/tests/events/__init__.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/events/test_events.py b/tests/events/test_events.py
index 35e9c68f5c..93d5c15c6f 100644
--- a/tests/events/test_events.py
+++ b/tests/events/test_events.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/federation/test_federation.py b/tests/federation/test_federation.py
index 51308ca358..0b105fe723 100644
--- a/tests/federation/test_federation.py
+++ b/tests/federation/test_federation.py
@@ -1,4 +1,4 @@
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/federation/test_pdu_codec.py b/tests/federation/test_pdu_codec.py
index 2c546040b8..9f74ba119f 100644
--- a/tests/federation/test_pdu_codec.py
+++ b/tests/federation/test_pdu_codec.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/handlers/test_directory.py b/tests/handlers/test_directory.py
index 88ac8933f8..72a2b1443a 100644
--- a/tests/handlers/test_directory.py
+++ b/tests/handlers/test_directory.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@ from mock import Mock
import logging
from synapse.server import HomeServer
+from synapse.http.client import HttpClient
from synapse.handlers.directory import DirectoryHandler
from synapse.storage.directory import RoomAliasMapping
@@ -49,6 +50,7 @@ class DirectoryTestCase(unittest.TestCase):
hs = HomeServer("test",
datastore=Mock(spec=[
"get_association_from_room_alias",
+ "get_joined_hosts_for_room",
]),
http_client=None,
resource_for_federation=Mock(),
@@ -60,6 +62,10 @@ class DirectoryTestCase(unittest.TestCase):
self.datastore = hs.get_datastore()
+ def hosts(room_id):
+ return defer.succeed([])
+ self.datastore.get_joined_hosts_for_room.side_effect = hosts
+
self.my_room = hs.parse_roomalias("#my-room:test")
self.remote_room = hs.parse_roomalias("#another:remote")
@@ -92,7 +98,10 @@ class DirectoryTestCase(unittest.TestCase):
self.mock_federation.make_query.assert_called_with(
destination="remote",
query_type="directory",
- args={"room_alias": "#another:remote"}
+ args={
+ "room_alias": "#another:remote",
+ HttpClient.RETRY_DNS_LOOKUP_FAILURES: False
+ }
)
@defer.inlineCallbacks
diff --git a/tests/handlers/test_federation.py b/tests/handlers/test_federation.py
index fd19442645..7c4921e226 100644
--- a/tests/handlers/test_federation.py
+++ b/tests/handlers/test_federation.py
@@ -1,4 +1,4 @@
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/handlers/test_presence.py b/tests/handlers/test_presence.py
index b8309bc063..9eb8b6909f 100644
--- a/tests/handlers/test_presence.py
+++ b/tests/handlers/test_presence.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -117,10 +117,12 @@ class PresenceStateTestCase(unittest.TestCase):
return defer.succeed([])
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))
+ def user_rooms_intersect(userlist):
+ room_member_ids = map(lambda u: u.to_string(), self.room_members)
+
+ shared = all(map(lambda i: i in room_member_ids, userlist))
return defer.succeed(shared)
- self.datastore.do_users_share_a_room = do_users_share_a_room
+ self.datastore.user_rooms_intersect = user_rooms_intersect
self.mock_start = Mock()
self.mock_stop = Mock()
@@ -140,7 +142,7 @@ class PresenceStateTestCase(unittest.TestCase):
)
self.assertEquals(
- {"state": ONLINE, "presence": ONLINE, "status_msg": "Online"},
+ {"presence": ONLINE, "status_msg": "Online"},
state
)
mocked_get.assert_called_with("apple")
@@ -157,7 +159,7 @@ class PresenceStateTestCase(unittest.TestCase):
)
self.assertEquals(
- {"state": ONLINE, "presence": ONLINE, "status_msg": "Online"},
+ {"presence": ONLINE, "status_msg": "Online"},
state
)
mocked_get.assert_called_with("apple")
@@ -176,7 +178,7 @@ class PresenceStateTestCase(unittest.TestCase):
)
self.assertEquals(
- {"state": ONLINE, "presence": ONLINE, "status_msg": "Online"},
+ {"presence": ONLINE, "status_msg": "Online"},
state
)
@@ -206,7 +208,8 @@ class PresenceStateTestCase(unittest.TestCase):
state={"presence": UNAVAILABLE, "status_msg": "Away"})
mocked_set.assert_called_with("apple",
- {"state": UNAVAILABLE, "status_msg": "Away"})
+ {"state": UNAVAILABLE, "status_msg": "Away"}
+ )
self.mock_start.assert_called_with(self.u_apple,
state={
"presence": UNAVAILABLE,
@@ -458,8 +461,7 @@ class PresenceInvitesTestCase(unittest.TestCase):
self.assertEquals([
{"observed_user": self.u_banana,
- "presence": OFFLINE,
- "state": OFFLINE},
+ "presence": OFFLINE},
], presence)
self.datastore.get_presence_list.assert_called_with("apple",
@@ -476,8 +478,7 @@ class PresenceInvitesTestCase(unittest.TestCase):
self.assertEquals([
{"observed_user": self.u_banana,
- "presence": OFFLINE,
- "state": OFFLINE},
+ "presence": OFFLINE},
], presence)
self.datastore.get_presence_list.assert_called_with("apple",
@@ -562,6 +563,13 @@ class PresencePushTestCase(unittest.TestCase):
return defer.succeed([])
self.datastore.get_joined_hosts_for_room = get_room_hosts
+ def user_rooms_intersect(userlist):
+ room_member_ids = map(lambda u: u.to_string(), self.room_members)
+
+ shared = all(map(lambda i: i in room_member_ids, userlist))
+ return defer.succeed(shared)
+ self.datastore.user_rooms_intersect = user_rooms_intersect
+
@defer.inlineCallbacks
def fetch_room_distributions_into(room_id, localusers=None,
remotedomains=None, ignore_user=None):
@@ -604,6 +612,7 @@ class PresencePushTestCase(unittest.TestCase):
self.u_apple = hs.parse_userid("@apple:test")
self.u_banana = hs.parse_userid("@banana:test")
self.u_clementine = hs.parse_userid("@clementine:test")
+ self.u_durian = hs.parse_userid("@durian:test")
self.u_elderberry = hs.parse_userid("@elderberry:test")
# Remote user
@@ -615,7 +624,8 @@ class PresencePushTestCase(unittest.TestCase):
self.room_members = [self.u_apple, self.u_elderberry]
self.datastore.set_presence_state.return_value = defer.succeed(
- {"state": ONLINE})
+ {"state": ONLINE}
+ )
# TODO(paul): Gut-wrenching
self.handler._user_cachemap[self.u_apple] = UserPresenceCache()
@@ -632,6 +642,7 @@ class PresencePushTestCase(unittest.TestCase):
{"presence": ONLINE}
)
+ # Apple sees self-reflection
(events, _) = yield self.event_source.get_new_events_for_user(
self.u_apple, 0, None
)
@@ -643,10 +654,56 @@ class PresencePushTestCase(unittest.TestCase):
"content": {
"user_id": "@apple:test",
"presence": ONLINE,
- "state": ONLINE,
"last_active_ago": 0,
}},
],
+ msg="Presence event should be visible to self-reflection"
+ )
+
+ # Banana sees it because of presence subscription
+ (events, _) = yield self.event_source.get_new_events_for_user(
+ self.u_banana, 0, None
+ )
+
+ self.assertEquals(self.event_source.get_current_key(), 1)
+ self.assertEquals(events,
+ [
+ {"type": "m.presence",
+ "content": {
+ "user_id": "@apple:test",
+ "presence": ONLINE,
+ "last_active_ago": 0,
+ }},
+ ],
+ msg="Presence event should be visible to explicit subscribers"
+ )
+
+ # Elderberry sees it because of same room
+ (events, _) = yield self.event_source.get_new_events_for_user(
+ self.u_elderberry, 0, None
+ )
+
+ self.assertEquals(self.event_source.get_current_key(), 1)
+ self.assertEquals(events,
+ [
+ {"type": "m.presence",
+ "content": {
+ "user_id": "@apple:test",
+ "presence": ONLINE,
+ "last_active_ago": 0,
+ }},
+ ],
+ msg="Presence event should be visible to other room members"
+ )
+
+ # Durian is not in the room, should not see this event
+ (events, _) = yield self.event_source.get_new_events_for_user(
+ self.u_durian, 0, None
+ )
+
+ self.assertEquals(self.event_source.get_current_key(), 1)
+ self.assertEquals(events, [],
+ msg="Presence event should not be visible to others"
)
presence = yield self.handler.get_presence_list(
@@ -655,15 +712,17 @@ class PresencePushTestCase(unittest.TestCase):
self.assertEquals(
[
{"observed_user": self.u_banana,
- "presence": OFFLINE,
- "state": OFFLINE},
+ "presence": OFFLINE},
{"observed_user": self.u_clementine,
- "presence": OFFLINE,
- "state": OFFLINE},
+ "presence": OFFLINE},
],
presence
)
+ # TODO(paul): Gut-wrenching
+ banana_set = self.handler._local_pushmap.setdefault("banana", set())
+ banana_set.add(self.u_apple)
+
yield self.handler.set_state(self.u_banana, self.u_banana,
{"presence": ONLINE}
)
@@ -676,11 +735,9 @@ class PresencePushTestCase(unittest.TestCase):
self.assertEquals([
{"observed_user": self.u_banana,
"presence": ONLINE,
- "state": ONLINE,
"last_active_ago": 2000},
{"observed_user": self.u_clementine,
- "presence": OFFLINE,
- "state": OFFLINE},
+ "presence": OFFLINE},
], presence)
(events, _) = yield self.event_source.get_new_events_for_user(
@@ -694,7 +751,6 @@ class PresencePushTestCase(unittest.TestCase):
"content": {
"user_id": "@banana:test",
"presence": ONLINE,
- "state": ONLINE,
"last_active_ago": 2000
}},
]
@@ -711,7 +767,21 @@ class PresencePushTestCase(unittest.TestCase):
"push": [
{"user_id": "@apple:test",
"presence": u"online",
- "state": u"online",
+ "last_active_ago": 0},
+ ],
+ }
+ )
+ ),
+ defer.succeed((200, "OK"))
+ )
+ put_json.expect_call_and_return(
+ call("remote",
+ path=ANY, # Can't guarantee which txn ID will be which
+ data=_expect_edu("remote", "m.presence",
+ content={
+ "push": [
+ {"user_id": "@apple:test",
+ "presence": u"online",
"last_active_ago": 0},
],
}
@@ -757,7 +827,7 @@ class PresencePushTestCase(unittest.TestCase):
content={
"push": [
{"user_id": "@potato:remote",
- "state": "online",
+ "presence": "online",
"last_active_ago": 1000},
],
}
@@ -775,7 +845,6 @@ class PresencePushTestCase(unittest.TestCase):
"content": {
"user_id": "@potato:remote",
"presence": ONLINE,
- "state": ONLINE,
"last_active_ago": 1000,
}}
]
@@ -786,7 +855,7 @@ class PresencePushTestCase(unittest.TestCase):
state = yield self.handler.get_state(self.u_potato, self.u_apple)
self.assertEquals(
- {"state": ONLINE, "presence": ONLINE, "last_active_ago": 3000},
+ {"presence": ONLINE, "last_active_ago": 3000},
state
)
@@ -809,6 +878,8 @@ class PresencePushTestCase(unittest.TestCase):
"a-room"
)
+ self.room_members.append(self.u_clementine)
+
(events, _) = yield self.event_source.get_new_events_for_user(
self.u_apple, 0, None
)
@@ -820,7 +891,6 @@ class PresencePushTestCase(unittest.TestCase):
"content": {
"user_id": "@clementine:test",
"presence": ONLINE,
- "state": ONLINE,
"last_active_ago": 0,
}}
]
@@ -837,8 +907,7 @@ class PresencePushTestCase(unittest.TestCase):
content={
"push": [
{"user_id": "@apple:test",
- "presence": "online",
- "state": "online"},
+ "presence": "online"},
],
}
),
@@ -852,8 +921,7 @@ class PresencePushTestCase(unittest.TestCase):
content={
"push": [
{"user_id": "@banana:test",
- "presence": "offline",
- "state": "offline"},
+ "presence": "offline"},
],
}
),
@@ -882,8 +950,7 @@ class PresencePushTestCase(unittest.TestCase):
content={
"push": [
{"user_id": "@clementine:test",
- "presence": "online",
- "state": "online"},
+ "presence": "online"},
],
}
),
@@ -1182,7 +1249,6 @@ class PresencePollingTestCase(unittest.TestCase):
"push": [
{"user_id": "@banana:test",
"presence": "offline",
- "state": "offline",
"status_msg": None},
],
},
diff --git a/tests/handlers/test_presencelike.py b/tests/handlers/test_presencelike.py
index 38cc34350b..b35980d948 100644
--- a/tests/handlers/test_presencelike.py
+++ b/tests/handlers/test_presencelike.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -107,9 +107,9 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
return defer.succeed(self.presence_list)
self.datastore.get_presence_list = get_presence_list
- def do_users_share_a_room(userlist):
+ def user_rooms_intersect(userlist):
return defer.succeed(False)
- self.datastore.do_users_share_a_room = do_users_share_a_room
+ self.datastore.user_rooms_intersect = user_rooms_intersect
self.handlers = hs.get_handlers()
@@ -148,10 +148,11 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
yield self.handlers.presence_handler.set_state(
target_user=self.u_apple, auth_user=self.u_apple,
- state={"state": UNAVAILABLE, "status_msg": "Away"})
+ state={"presence": UNAVAILABLE, "status_msg": "Away"})
mocked_set.assert_called_with("apple",
- {"state": UNAVAILABLE, "status_msg": "Away"})
+ {"state": UNAVAILABLE, "status_msg": "Away"}
+ )
@defer.inlineCallbacks
def test_push_local(self):
@@ -161,7 +162,8 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
]
self.datastore.set_presence_state.return_value = defer.succeed(
- {"state": ONLINE})
+ {"state": ONLINE}
+ )
# TODO(paul): Gut-wrenching
from synapse.handlers.presence import UserPresenceCache
@@ -177,9 +179,11 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
apple_set.add(self.u_clementine)
yield self.handlers.presence_handler.set_state(self.u_apple,
- self.u_apple, {"state": ONLINE})
+ self.u_apple, {"presence": ONLINE}
+ )
yield self.handlers.presence_handler.set_state(self.u_banana,
- self.u_banana, {"state": ONLINE})
+ self.u_banana, {"presence": ONLINE}
+ )
presence = yield self.handlers.presence_handler.get_presence_list(
observer_user=self.u_apple, accepted=True)
@@ -187,14 +191,12 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
self.assertEquals([
{"observed_user": self.u_banana,
"presence": ONLINE,
- "state": ONLINE,
"last_active_ago": 0,
"displayname": "Frank",
"avatar_url": "http://foo"},
{"observed_user": self.u_clementine,
- "presence": OFFLINE,
- "state": OFFLINE}],
- presence)
+ "presence": OFFLINE}
+ ], presence)
self.mock_update_client.assert_has_calls([
call(users_to_push=set([self.u_apple, self.u_banana, self.u_clementine]),
@@ -242,7 +244,8 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
]
self.datastore.set_presence_state.return_value = defer.succeed(
- {"state": ONLINE})
+ {"state": ONLINE}
+ )
# TODO(paul): Gut-wrenching
from synapse.handlers.presence import UserPresenceCache
@@ -257,7 +260,8 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
apple_set.add(self.u_potato.domain)
yield self.handlers.presence_handler.set_state(self.u_apple,
- self.u_apple, {"state": ONLINE})
+ self.u_apple, {"presence": ONLINE}
+ )
self.replication.send_edu.assert_called_with(
destination="remote",
@@ -266,7 +270,6 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
"push": [
{"user_id": "@apple:test",
"presence": "online",
- "state": "online",
"last_active_ago": 0,
"displayname": "Frank",
"avatar_url": "http://foo"},
@@ -283,18 +286,19 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
# TODO(paul): Gut-wrenching
potato_set = self.handlers.presence_handler._remote_recvmap.setdefault(
- self.u_potato, set())
+ self.u_potato, set()
+ )
potato_set.add(self.u_apple)
yield self.replication.received_edu(
- "remote", "m.presence", {
- "push": [
- {"user_id": "@potato:remote",
- "state": "online",
- "displayname": "Frank",
- "avatar_url": "http://foo"},
- ],
- }
+ "remote", "m.presence", {
+ "push": [
+ {"user_id": "@potato:remote",
+ "presence": "online",
+ "displayname": "Frank",
+ "avatar_url": "http://foo"},
+ ],
+ }
)
self.mock_update_client.assert_called_with(
@@ -313,7 +317,6 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
self.assertEquals(
{"presence": ONLINE,
- "state": ONLINE,
"displayname": "Frank",
"avatar_url": "http://foo"},
state)
diff --git a/tests/handlers/test_profile.py b/tests/handlers/test_profile.py
index 87a8139920..8e7a89b479 100644
--- a/tests/handlers/test_profile.py
+++ b/tests/handlers/test_profile.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/handlers/test_room.py b/tests/handlers/test_room.py
index 4591a5ea58..5687bbea0b 100644
--- a/tests/handlers/test_room.py
+++ b/tests/handlers/test_room.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/handlers/test_typing.py b/tests/handlers/test_typing.py
index c3c98074cc..6532ac94a3 100644
--- a/tests/handlers/test_typing.py
+++ b/tests/handlers/test_typing.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/rest/__init__.py b/tests/rest/__init__.py
index 2216c0f1ca..9bff9ec169 100644
--- a/tests/rest/__init__.py
+++ b/tests/rest/__init__.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/rest/test_events.py b/tests/rest/test_events.py
index c8527f3517..1dccf4c503 100644
--- a/tests/rest/test_events.py
+++ b/tests/rest/test_events.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/rest/test_presence.py b/tests/rest/test_presence.py
index e2cdd80e07..a1db0fbcf3 100644
--- a/tests/rest/test_presence.py
+++ b/tests/rest/test_presence.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -99,7 +99,7 @@ class PresenceStateTestCase(unittest.TestCase):
self.assertEquals(200, code)
self.assertEquals(
- {"presence": ONLINE, "state": ONLINE, "status_msg": "Available"},
+ {"presence": ONLINE, "status_msg": "Available"},
response
)
mocked_get.assert_called_with("apple")
@@ -115,7 +115,8 @@ class PresenceStateTestCase(unittest.TestCase):
self.assertEquals(200, code)
mocked_set.assert_called_with("apple",
- {"state": UNAVAILABLE, "status_msg": "Away"})
+ {"state": UNAVAILABLE, "status_msg": "Away"}
+ )
class PresenceListTestCase(unittest.TestCase):
@@ -176,7 +177,7 @@ class PresenceListTestCase(unittest.TestCase):
self.assertEquals(200, code)
self.assertEquals([
- {"user_id": "@banana:test", "presence": OFFLINE, "state": OFFLINE},
+ {"user_id": "@banana:test", "presence": OFFLINE},
], response)
self.datastore.get_presence_list.assert_called_with(
@@ -269,11 +270,16 @@ class PresenceEventStreamTestCase(unittest.TestCase):
hs.register_servlets()
- hs.handlers.room_member_handler = Mock(spec=[
- "get_rooms_for_user",
- ])
- hs.handlers.room_member_handler.get_rooms_for_user = (
- lambda u: defer.succeed([]))
+ hs.handlers.room_member_handler = Mock(spec=[])
+
+ self.room_members = []
+
+ def get_rooms_for_user(user):
+ if user in self.room_members:
+ return ["a-room"]
+ else:
+ return []
+ hs.handlers.room_member_handler.get_rooms_for_user = get_rooms_for_user
self.mock_datastore = hs.get_datastore()
@@ -285,6 +291,17 @@ class PresenceEventStreamTestCase(unittest.TestCase):
return defer.succeed(None)
self.mock_datastore.get_profile_avatar_url = get_profile_avatar_url
+ def user_rooms_intersect(user_list):
+ room_member_ids = map(lambda u: u.to_string(), self.room_members)
+
+ shared = all(map(lambda i: i in room_member_ids, user_list))
+ return defer.succeed(shared)
+ self.mock_datastore.user_rooms_intersect = user_rooms_intersect
+
+ def get_joined_hosts_for_room(room_id):
+ return []
+ self.mock_datastore.get_joined_hosts_for_room = get_joined_hosts_for_room
+
self.presence = hs.get_handlers().presence_handler
self.u_apple = hs.parse_userid("@apple:test")
@@ -292,10 +309,14 @@ class PresenceEventStreamTestCase(unittest.TestCase):
@defer.inlineCallbacks
def test_shortpoll(self):
+ self.room_members = [self.u_apple, self.u_banana]
+
self.mock_datastore.set_presence_state.return_value = defer.succeed(
- {"state": ONLINE})
+ {"state": ONLINE}
+ )
self.mock_datastore.get_presence_list.return_value = defer.succeed(
- [])
+ []
+ )
(code, response) = yield self.mock_resource.trigger("GET",
"/events?timeout=0", None)
@@ -311,9 +332,11 @@ class PresenceEventStreamTestCase(unittest.TestCase):
)
self.mock_datastore.set_presence_state.return_value = defer.succeed(
- {"state": ONLINE})
+ {"state": ONLINE}
+ )
self.mock_datastore.get_presence_list.return_value = defer.succeed(
- [])
+ []
+ )
yield self.presence.set_state(self.u_banana, self.u_banana,
state={"presence": ONLINE}
@@ -328,7 +351,6 @@ class PresenceEventStreamTestCase(unittest.TestCase):
"content": {
"user_id": "@banana:test",
"presence": ONLINE,
- "state": ONLINE,
"displayname": "Frank",
"last_active_ago": 0,
}},
diff --git a/tests/rest/test_profile.py b/tests/rest/test_profile.py
index 24456769c7..f41810df1f 100644
--- a/tests/rest/test_profile.py
+++ b/tests/rest/test_profile.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/rest/test_rooms.py b/tests/rest/test_rooms.py
index 23c50824c7..4ea5828d4f 100644
--- a/tests/rest/test_rooms.py
+++ b/tests/rest/test_rooms.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/rest/utils.py b/tests/rest/utils.py
index ef9a6071e2..77f5ecf0df 100644
--- a/tests/rest/utils.py
+++ b/tests/rest/utils.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/storage/test_base.py b/tests/storage/test_base.py
index 5567480921..330311448d 100644
--- a/tests/storage/test_base.py
+++ b/tests/storage/test_base.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/test_distributor.py b/tests/test_distributor.py
index 21c91f335b..04933f0ecf 100644
--- a/tests/test_distributor.py
+++ b/tests/test_distributor.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,9 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import unittest
-
from twisted.internet import defer
+from twisted.trial import unittest
from mock import Mock, patch
@@ -75,6 +74,24 @@ class DistributorTestCase(unittest.TestCase):
self.assertIsInstance(mock_logger.warning.call_args[0][0],
str)
+ @defer.inlineCallbacks
+ def test_signal_catch_no_suppress(self):
+ # Gut-wrenching
+ self.dist.suppress_failures = False
+
+ self.dist.declare("whail")
+
+ observer = Mock()
+ observer.return_value = defer.fail(
+ Exception("Oopsie")
+ )
+
+ self.dist.observe("whail", observer)
+
+ d = self.dist.fire("whail")
+
+ yield self.assertFailure(d, Exception)
+
def test_signal_prereg(self):
observer = Mock()
self.dist.observe("flare", observer)
@@ -85,5 +102,6 @@ class DistributorTestCase(unittest.TestCase):
observer.assert_called_with(4, 5)
def test_signal_undeclared(self):
- with self.assertRaises(KeyError):
+ def code():
self.dist.fire("notification")
+ self.assertRaises(KeyError, code)
diff --git a/tests/test_state.py b/tests/test_state.py
index 58fd0bf3be..a1f5ee869b 100644
--- a/tests/test_state.py
+++ b/tests/test_state.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/test_types.py b/tests/test_types.py
index d2ccbcfa55..571938356c 100644
--- a/tests/test_types.py
+++ b/tests/test_types.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/util/__init__.py b/tests/util/__init__.py
index 2216c0f1ca..9bff9ec169 100644
--- a/tests/util/__init__.py
+++ b/tests/util/__init__.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/util/test_lock.py b/tests/util/test_lock.py
index dd83d204d9..5623d78423 100644
--- a/tests/util/test_lock.py
+++ b/tests/util/test_lock.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/tests/utils.py b/tests/utils.py
index aa7e499e15..d90214e418 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Copyright 2014 matrix.org
+# Copyright 2014 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
|