diff --git a/tests/federation/test_federation.py b/tests/federation/test_federation.py
index 933aa61c77..eb329eec50 100644
--- a/tests/federation/test_federation.py
+++ b/tests/federation/test_federation.py
@@ -24,7 +24,6 @@ from ..utils import MockHttpResource, MockClock, MockKey
from synapse.server import HomeServer
from synapse.federation import initialize_http_replication
from synapse.federation.units import Pdu
-from synapse.storage.pdu import PduTuple, PduEntry
def make_pdu(prev_pdus=[], **kwargs):
@@ -41,7 +40,7 @@ def make_pdu(prev_pdus=[], **kwargs):
}
pdu_fields.update(kwargs)
- return PduTuple(PduEntry(**pdu_fields), prev_pdus)
+ return Pdu(prev_pdus=prev_pdus, **pdu_fields)
class FederationTestCase(unittest.TestCase):
@@ -52,177 +51,185 @@ class FederationTestCase(unittest.TestCase):
"put_json",
])
self.mock_persistence = Mock(spec=[
- "get_current_state_for_context",
- "get_pdu",
- "persist_event",
- "update_min_depth_for_context",
"prep_send_transaction",
"delivered_txn",
"get_received_txn_response",
"set_received_txn_response",
])
self.mock_persistence.get_received_txn_response.return_value = (
- defer.succeed(None)
+ defer.succeed(None)
)
self.mock_config = Mock()
self.mock_config.signing_key = [MockKey()]
self.clock = MockClock()
- hs = HomeServer("test",
- resource_for_federation=self.mock_resource,
- http_client=self.mock_http_client,
- db_pool=None,
- datastore=self.mock_persistence,
- clock=self.clock,
- config=self.mock_config,
- keyring=Mock(),
+ hs = HomeServer(
+ "test",
+ resource_for_federation=self.mock_resource,
+ http_client=self.mock_http_client,
+ db_pool=None,
+ datastore=self.mock_persistence,
+ clock=self.clock,
+ config=self.mock_config,
+ keyring=Mock(),
)
self.federation = initialize_http_replication(hs)
self.distributor = hs.get_distributor()
@defer.inlineCallbacks
def test_get_state(self):
- self.mock_persistence.get_current_state_for_context.return_value = (
- defer.succeed([])
- )
+ mock_handler = Mock(spec=[
+ "get_state_for_pdu",
+ ])
+
+ self.federation.set_handler(mock_handler)
+
+ mock_handler.get_state_for_pdu.return_value = defer.succeed([])
# Empty context initially
- (code, response) = yield self.mock_resource.trigger("GET",
- "/_matrix/federation/v1/state/my-context/", None)
+ (code, response) = yield self.mock_resource.trigger(
+ "GET",
+ "/_matrix/federation/v1/state/my-context/",
+ None
+ )
self.assertEquals(200, code)
self.assertFalse(response["pdus"])
# Now lets give the context some state
- self.mock_persistence.get_current_state_for_context.return_value = (
+ mock_handler.get_state_for_pdu.return_value = (
defer.succeed([
make_pdu(
- pdu_id="the-pdu-id",
+ event_id="the-pdu-id",
origin="red",
- context="my-context",
- pdu_type="m.topic",
- ts=123456789000,
+ room_id="my-context",
+ type="m.topic",
+ origin_server_ts=123456789000,
depth=1,
- is_state=True,
- content_json='{"topic":"The topic"}',
+ content={"topic": "The topic"},
state_key="",
power_level=1000,
- prev_state_id="last-pdu-id",
- prev_state_origin="blue",
+ prev_state="last-pdu-id",
),
])
)
- (code, response) = yield self.mock_resource.trigger("GET",
- "/_matrix/federation/v1/state/my-context/", None)
+ (code, response) = yield self.mock_resource.trigger(
+ "GET",
+ "/_matrix/federation/v1/state/my-context/",
+ None
+ )
self.assertEquals(200, code)
self.assertEquals(1, len(response["pdus"]))
@defer.inlineCallbacks
def test_get_pdu(self):
- self.mock_persistence.get_pdu.return_value = (
+ mock_handler = Mock(spec=[
+ "get_persisted_pdu",
+ ])
+
+ self.federation.set_handler(mock_handler)
+
+ mock_handler.get_persisted_pdu.return_value = (
defer.succeed(None)
)
- (code, response) = yield self.mock_resource.trigger("GET",
- "/_matrix/federation/v1/pdu/red/abc123def456/", None)
+ (code, response) = yield self.mock_resource.trigger(
+ "GET",
+ "/_matrix/federation/v1/event/abc123def456/",
+ None
+ )
self.assertEquals(404, code)
# Now insert such a PDU
- self.mock_persistence.get_pdu.return_value = (
+ mock_handler.get_persisted_pdu.return_value = (
defer.succeed(
make_pdu(
- pdu_id="abc123def456",
+ event_id="abc123def456",
origin="red",
- context="my-context",
- pdu_type="m.text",
- ts=123456789001,
+ room_id="my-context",
+ type="m.text",
+ origin_server_ts=123456789001,
depth=1,
- content_json='{"text":"Here is the message"}',
+ content={"text": "Here is the message"},
)
)
)
- (code, response) = yield self.mock_resource.trigger("GET",
- "/_matrix/federation/v1/pdu/red/abc123def456/", None)
+ (code, response) = yield self.mock_resource.trigger(
+ "GET",
+ "/_matrix/federation/v1/event/abc123def456/",
+ None
+ )
self.assertEquals(200, code)
self.assertEquals(1, len(response["pdus"]))
- self.assertEquals("m.text", response["pdus"][0]["pdu_type"])
+ self.assertEquals("m.text", response["pdus"][0]["type"])
@defer.inlineCallbacks
def test_send_pdu(self):
self.mock_http_client.put_json.return_value = defer.succeed(
- (200, "OK")
+ (200, "OK")
)
pdu = Pdu(
- pdu_id="abc123def456",
- origin="red",
- destinations=["remote"],
- context="my-context",
- origin_server_ts=123456789002,
- pdu_type="m.test",
- content={"testing": "content here"},
- depth=1,
+ event_id="abc123def456",
+ origin="red",
+ room_id="my-context",
+ type="m.text",
+ origin_server_ts=123456789001,
+ depth=1,
+ content={"text": "Here is the message"},
+ destinations=["remote"],
)
yield self.federation.send_pdu(pdu)
self.mock_http_client.put_json.assert_called_with(
- "remote",
- path="/_matrix/federation/v1/send/1000000/",
- data={
- "origin_server_ts": 1000000,
- "origin": "test",
- "pdus": [
- {
- "origin": "red",
- "pdu_id": "abc123def456",
- "prev_pdus": [],
- "origin_server_ts": 123456789002,
- "context": "my-context",
- "pdu_type": "m.test",
- "is_state": False,
- "content": {"testing": "content here"},
- "depth": 1,
- },
- ]
- },
- json_data_callback=ANY,
+ "remote",
+ path="/_matrix/federation/v1/send/1000000/",
+ data={
+ "origin_server_ts": 1000000,
+ "origin": "test",
+ "pdus": [
+ pdu.get_dict(),
+ ],
+ 'pdu_failures': [],
+ },
+ json_data_callback=ANY,
)
@defer.inlineCallbacks
def test_send_edu(self):
self.mock_http_client.put_json.return_value = defer.succeed(
- (200, "OK")
+ (200, "OK")
)
yield self.federation.send_edu(
- destination="remote",
- edu_type="m.test",
- content={"testing": "content here"},
+ destination="remote",
+ edu_type="m.test",
+ content={"testing": "content here"},
)
# MockClock ensures we can guess these timestamps
self.mock_http_client.put_json.assert_called_with(
- "remote",
- path="/_matrix/federation/v1/send/1000000/",
- data={
- "origin": "test",
- "origin_server_ts": 1000000,
- "pdus": [],
- "edus": [
- {
- # TODO: SYN-103: Remove "origin" and "destination"
- "origin": "test",
- "destination": "remote",
- "edu_type": "m.test",
- "content": {"testing": "content here"},
- }
- ],
- },
- json_data_callback=ANY,
+ "remote",
+ path="/_matrix/federation/v1/send/1000000/",
+ data={
+ "origin": "test",
+ "origin_server_ts": 1000000,
+ "pdus": [],
+ "edus": [
+ {
+ # TODO: SYN-103: Remove "origin" and "destination"
+ "origin": "test",
+ "destination": "remote",
+ "edu_type": "m.test",
+ "content": {"testing": "content here"},
+ }
+ ],
+ 'pdu_failures': [],
+ },
+ json_data_callback=ANY,
)
-
@defer.inlineCallbacks
def test_recv_edu(self):
recv_observer = Mock()
@@ -230,24 +237,26 @@ class FederationTestCase(unittest.TestCase):
self.federation.register_edu_handler("m.test", recv_observer)
- yield self.mock_resource.trigger("PUT",
- "/_matrix/federation/v1/send/1001000/",
- """{
- "origin": "remote",
- "origin_server_ts": 1001000,
- "pdus": [],
- "edus": [
- {
- "origin": "remote",
- "destination": "test",
- "edu_type": "m.test",
- "content": {"testing": "reply here"}
- }
- ]
- }""")
+ yield self.mock_resource.trigger(
+ "PUT",
+ "/_matrix/federation/v1/send/1001000/",
+ """{
+ "origin": "remote",
+ "origin_server_ts": 1001000,
+ "pdus": [],
+ "edus": [
+ {
+ "origin": "remote",
+ "destination": "test",
+ "edu_type": "m.test",
+ "content": {"testing": "reply here"}
+ }
+ ]
+ }"""
+ )
recv_observer.assert_called_with(
- "remote", {"testing": "reply here"}
+ "remote", {"testing": "reply here"}
)
@defer.inlineCallbacks
@@ -278,8 +287,11 @@ class FederationTestCase(unittest.TestCase):
self.federation.register_query_handler("a-question", recv_handler)
- code, response = yield self.mock_resource.trigger("GET",
- "/_matrix/federation/v1/query/a-question?three=3&four=4", None)
+ code, response = yield self.mock_resource.trigger(
+ "GET",
+ "/_matrix/federation/v1/query/a-question?three=3&four=4",
+ None
+ )
self.assertEquals(200, code)
self.assertEquals({"another": "response"}, response)
diff --git a/tests/federation/test_pdu_codec.py b/tests/federation/test_pdu_codec.py
deleted file mode 100644
index 0754ef92e8..0000000000
--- a/tests/federation/test_pdu_codec.py
+++ /dev/null
@@ -1,160 +0,0 @@
-# -*- coding: utf-8 -*-
-# 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.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from tests import unittest
-
-from synapse.federation.pdu_codec import (
- PduCodec, encode_event_id, decode_event_id
-)
-from synapse.federation.units import Pdu
-#from synapse.api.events.room import MessageEvent
-
-from synapse.server import HomeServer
-
-from mock import Mock
-
-
-class PduCodecTestCase(unittest.TestCase):
- def setUp(self):
- self.hs = HomeServer("blargle.net")
- self.event_factory = self.hs.get_event_factory()
-
- self.codec = PduCodec(self.hs)
-
- def test_decode_event_id(self):
- self.assertEquals(
- ("foo", "bar.com"),
- decode_event_id("foo@bar.com", "A")
- )
-
- self.assertEquals(
- ("foo", "bar.com"),
- decode_event_id("foo", "bar.com")
- )
-
- def test_encode_event_id(self):
- self.assertEquals("A@B", encode_event_id("A", "B"))
-
- def test_codec_event_id(self):
- event_id = "aa@bb.com"
-
- self.assertEquals(
- event_id,
- encode_event_id(*decode_event_id(event_id, None))
- )
-
- pdu_id = ("aa", "bb.com")
-
- self.assertEquals(
- pdu_id,
- decode_event_id(encode_event_id(*pdu_id), None)
- )
-
- def test_event_from_pdu(self):
- pdu = Pdu(
- pdu_id="foo",
- context="rooooom",
- pdu_type="m.room.message",
- origin="bar.com",
- origin_server_ts=12345,
- depth=5,
- prev_pdus=[("alice", "bob.com")],
- is_state=False,
- content={"msgtype": u"test"},
- )
-
- event = self.codec.event_from_pdu(pdu)
-
- self.assertEquals("foo@bar.com", event.event_id)
- self.assertEquals(pdu.context, event.room_id)
- self.assertEquals(pdu.is_state, event.is_state)
- self.assertEquals(pdu.depth, event.depth)
- self.assertEquals(["alice@bob.com"], event.prev_events)
- self.assertEquals(pdu.content, event.content)
-
- def test_pdu_from_event(self):
- event = self.event_factory.create_event(
- etype="m.room.message",
- event_id="gargh_id",
- room_id="rooom",
- user_id="sender",
- content={"msgtype": u"test"},
- )
-
- pdu = self.codec.pdu_from_event(event)
-
- self.assertEquals(event.event_id, pdu.pdu_id)
- self.assertEquals(self.hs.hostname, pdu.origin)
- self.assertEquals(event.room_id, pdu.context)
- self.assertEquals(event.content, pdu.content)
- self.assertEquals(event.type, pdu.pdu_type)
-
- event = self.event_factory.create_event(
- etype="m.room.message",
- event_id="gargh_id@bob.com",
- room_id="rooom",
- user_id="sender",
- content={"msgtype": u"test"},
- )
-
- pdu = self.codec.pdu_from_event(event)
-
- self.assertEquals("gargh_id", pdu.pdu_id)
- self.assertEquals("bob.com", pdu.origin)
- self.assertEquals(event.room_id, pdu.context)
- self.assertEquals(event.content, pdu.content)
- self.assertEquals(event.type, pdu.pdu_type)
-
- def test_event_from_state_pdu(self):
- pdu = Pdu(
- pdu_id="foo",
- context="rooooom",
- pdu_type="m.room.topic",
- origin="bar.com",
- origin_server_ts=12345,
- depth=5,
- prev_pdus=[("alice", "bob.com")],
- is_state=True,
- content={"topic": u"test"},
- state_key="",
- )
-
- event = self.codec.event_from_pdu(pdu)
-
- self.assertEquals("foo@bar.com", event.event_id)
- self.assertEquals(pdu.context, event.room_id)
- self.assertEquals(pdu.is_state, event.is_state)
- self.assertEquals(pdu.depth, event.depth)
- self.assertEquals(["alice@bob.com"], event.prev_events)
- self.assertEquals(pdu.content, event.content)
- self.assertEquals(pdu.state_key, event.state_key)
-
- def test_pdu_from_state_event(self):
- event = self.event_factory.create_event(
- etype="m.room.topic",
- event_id="gargh_id",
- room_id="rooom",
- user_id="sender",
- content={"topic": u"test"},
- )
-
- pdu = self.codec.pdu_from_event(event)
-
- self.assertEquals(event.event_id, pdu.pdu_id)
- self.assertEquals(self.hs.hostname, pdu.origin)
- self.assertEquals(event.room_id, pdu.context)
- self.assertEquals(event.content, pdu.content)
- self.assertEquals(event.type, pdu.pdu_type)
- self.assertEquals(event.state_key, pdu.state_key)
diff --git a/tests/handlers/test_directory.py b/tests/handlers/test_directory.py
index e10a49a8ac..8e164e4be0 100644
--- a/tests/handlers/test_directory.py
+++ b/tests/handlers/test_directory.py
@@ -21,9 +21,8 @@ from mock import Mock
from synapse.server import HomeServer
from synapse.handlers.directory import DirectoryHandler
-from synapse.storage.directory import RoomAliasMapping
-from tests.utils import SQLiteMemoryDbPool
+from tests.utils import SQLiteMemoryDbPool, MockKey
class DirectoryHandlers(object):
@@ -41,6 +40,7 @@ class DirectoryTestCase(unittest.TestCase):
])
self.query_handlers = {}
+
def register_query_handler(query_type, handler):
self.query_handlers[query_type] = handler
self.mock_federation.register_query_handler = register_query_handler
@@ -48,11 +48,16 @@ class DirectoryTestCase(unittest.TestCase):
db_pool = SQLiteMemoryDbPool()
yield db_pool.prepare()
- hs = HomeServer("test",
+ self.mock_config = Mock()
+ self.mock_config.signing_key = [MockKey()]
+
+ hs = HomeServer(
+ "test",
db_pool=db_pool,
http_client=None,
resource_for_federation=Mock(),
replication_layer=self.mock_federation,
+ config=self.mock_config,
)
hs.handlers = DirectoryHandlers(hs)
diff --git a/tests/handlers/test_federation.py b/tests/handlers/test_federation.py
index 219b2c4c5e..a9d6b2bb17 100644
--- a/tests/handlers/test_federation.py
+++ b/tests/handlers/test_federation.py
@@ -17,16 +17,15 @@ from twisted.internet import defer
from tests import unittest
from synapse.api.events.room import (
- InviteJoinEvent, MessageEvent, RoomMemberEvent
+ MessageEvent,
)
-from synapse.api.constants import Membership
from synapse.handlers.federation import FederationHandler
from synapse.server import HomeServer
from synapse.federation.units import Pdu
from mock import NonCallableMock, ANY
-from ..utils import get_mock_call_args, MockKey
+from ..utils import MockKey
class FederationTestCase(unittest.TestCase):
@@ -36,6 +35,14 @@ class FederationTestCase(unittest.TestCase):
self.mock_config = NonCallableMock()
self.mock_config.signing_key = [MockKey()]
+ self.state_handler = NonCallableMock(spec_set=[
+ "annotate_state_groups",
+ ])
+
+ self.auth = NonCallableMock(spec_set=[
+ "check",
+ ])
+
self.hostname = "test"
hs = HomeServer(
self.hostname,
@@ -53,6 +60,8 @@ class FederationTestCase(unittest.TestCase):
"federation_handler",
]),
config=self.mock_config,
+ auth=self.auth,
+ state_handler=self.state_handler,
)
self.datastore = hs.get_datastore()
@@ -65,74 +74,35 @@ class FederationTestCase(unittest.TestCase):
@defer.inlineCallbacks
def test_msg(self):
pdu = Pdu(
- pdu_type=MessageEvent.TYPE,
- context="foo",
+ type=MessageEvent.TYPE,
+ room_id="foo",
content={"msgtype": u"fooo"},
origin_server_ts=0,
- pdu_id="a",
+ event_id="$a:b",
origin="b",
)
- store_id = "ASD"
- self.datastore.persist_event.return_value = defer.succeed(store_id)
+ self.datastore.persist_event.return_value = defer.succeed(None)
self.datastore.get_room.return_value = defer.succeed(True)
+ self.state_handler.annotate_state_groups.return_value = (
+ defer.succeed(False)
+ )
+
yield self.handlers.federation_handler.on_receive_pdu(pdu, False)
self.datastore.persist_event.assert_called_once_with(
ANY, False, is_new_state=False
)
- self.notifier.on_new_room_event.assert_called_once_with(ANY, extra_users=[])
-
- @defer.inlineCallbacks
- def test_invite_join_target_this(self):
- room_id = "foo"
- user_id = "@bob:red"
- pdu = Pdu(
- pdu_type=InviteJoinEvent.TYPE,
- user_id=user_id,
- target_host=self.hostname,
- context=room_id,
- content={},
- origin_server_ts=0,
- pdu_id="a",
- origin="b",
+ self.state_handler.annotate_state_groups.assert_called_once_with(
+ ANY,
+ old_state=None,
)
- yield self.handlers.federation_handler.on_receive_pdu(pdu, False)
+ self.auth.check.assert_called_once_with(ANY, raises=True)
- mem_handler = self.handlers.room_member_handler
- self.assertEquals(1, mem_handler.change_membership.call_count)
- call_args = get_mock_call_args(
- lambda event, do_auth: None,
- mem_handler.change_membership
+ self.notifier.on_new_room_event.assert_called_once_with(
+ ANY,
+ extra_users=[]
)
- self.assertEquals(False, call_args["do_auth"])
-
- new_event = call_args["event"]
- self.assertEquals(RoomMemberEvent.TYPE, new_event.type)
- self.assertEquals(room_id, new_event.room_id)
- self.assertEquals(user_id, new_event.state_key)
- self.assertEquals(Membership.JOIN, new_event.membership)
-
- @defer.inlineCallbacks
- def test_invite_join_target_other(self):
- room_id = "foo"
- user_id = "@bob:red"
-
- pdu = Pdu(
- pdu_type=InviteJoinEvent.TYPE,
- user_id=user_id,
- state_key="@red:not%s" % self.hostname,
- context=room_id,
- content={},
- origin_server_ts=0,
- pdu_id="a",
- origin="b",
- )
-
- yield self.handlers.federation_handler.on_receive_pdu(pdu, False)
-
- mem_handler = self.handlers.room_member_handler
- self.assertEquals(0, mem_handler.change_membership.call_count)
diff --git a/tests/handlers/test_presence.py b/tests/handlers/test_presence.py
index fdc2e8de4a..a6af648def 100644
--- a/tests/handlers/test_presence.py
+++ b/tests/handlers/test_presence.py
@@ -51,6 +51,7 @@ def _expect_edu(destination, edu_type, content, origin="test"):
"content": content,
}
],
+ "pdu_failures": [],
}
def _make_edu_json(origin, edu_type, content):
diff --git a/tests/handlers/test_presencelike.py b/tests/handlers/test_presencelike.py
index 047752ad68..532ecf0f2c 100644
--- a/tests/handlers/test_presencelike.py
+++ b/tests/handlers/test_presencelike.py
@@ -21,7 +21,7 @@ from twisted.internet import defer
from mock import Mock, call, ANY
-from ..utils import MockClock
+from ..utils import MockClock, MockKey
from synapse.server import HomeServer
from synapse.api.constants import PresenceState
@@ -57,6 +57,9 @@ class PresenceAndProfileHandlers(object):
class PresenceProfilelikeDataTestCase(unittest.TestCase):
def setUp(self):
+ self.mock_config = Mock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer("test",
clock=MockClock(),
db_pool=None,
@@ -72,6 +75,7 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
resource_for_federation=Mock(),
http_client=None,
replication_layer=MockReplication(),
+ config=self.mock_config,
)
hs.handlers = PresenceAndProfileHandlers(hs)
diff --git a/tests/handlers/test_profile.py b/tests/handlers/test_profile.py
index 5dc9b456e1..1660e7e928 100644
--- a/tests/handlers/test_profile.py
+++ b/tests/handlers/test_profile.py
@@ -24,7 +24,7 @@ from synapse.server import HomeServer
from synapse.handlers.profile import ProfileHandler
from synapse.api.constants import Membership
-from tests.utils import SQLiteMemoryDbPool
+from tests.utils import SQLiteMemoryDbPool, MockKey
class ProfileHandlers(object):
@@ -49,12 +49,16 @@ class ProfileTestCase(unittest.TestCase):
db_pool = SQLiteMemoryDbPool()
yield db_pool.prepare()
+ self.mock_config = Mock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer("test",
db_pool=db_pool,
http_client=None,
handlers=None,
resource_for_federation=Mock(),
replication_layer=self.mock_federation,
+ config=self.mock_config,
)
hs.handlers = ProfileHandlers(hs)
diff --git a/tests/handlers/test_room.py b/tests/handlers/test_room.py
index c88d1c8840..146ed21b65 100644
--- a/tests/handlers/test_room.py
+++ b/tests/handlers/test_room.py
@@ -18,7 +18,7 @@ from twisted.internet import defer
from tests import unittest
from synapse.api.events.room import (
- InviteJoinEvent, RoomMemberEvent, RoomConfigEvent
+ RoomMemberEvent,
)
from synapse.api.constants import Membership
from synapse.handlers.room import RoomMemberHandler, RoomCreationHandler
@@ -34,6 +34,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
def setUp(self):
self.mock_config = NonCallableMock()
self.mock_config.signing_key = [MockKey()]
+
self.hostname = "red"
hs = HomeServer(
self.hostname,
@@ -58,7 +59,10 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
"federation_handler",
]),
auth=NonCallableMock(spec_set=["check"]),
- state_handler=NonCallableMock(spec_set=["handle_new_event"]),
+ state_handler=NonCallableMock(spec_set=[
+ "handle_new_event",
+ "annotate_state_groups",
+ ]),
config=self.mock_config,
)
@@ -114,12 +118,11 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
store_id = "store_id_fooo"
self.datastore.persist_event.return_value = defer.succeed(store_id)
+ self.datastore.get_room_member.return_value = defer.succeed(None)
+
# Actual invocation
yield self.room_member_handler.change_membership(event)
- self.state_handler.handle_new_event.assert_called_once_with(
- event, self.snapshot,
- )
self.federation.handle_new_event.assert_called_once_with(
event, self.snapshot,
)
@@ -165,7 +168,6 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
self.datastore.get_joined_hosts_for_room.side_effect = get_joined
-
store_id = "store_id_fooo"
self.datastore.persist_event.return_value = defer.succeed(store_id)
self.datastore.get_room.return_value = defer.succeed(1) # Not None.
@@ -181,9 +183,6 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
# Actual invocation
yield self.room_member_handler.change_membership(event)
- self.state_handler.handle_new_event.assert_called_once_with(
- event, self.snapshot
- )
self.federation.handle_new_event.assert_called_once_with(
event, self.snapshot
)
@@ -197,138 +196,22 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
event
)
self.notifier.on_new_room_event.assert_called_once_with(
- event, extra_users=[user])
-
- join_signal_observer.assert_called_with(
- user=user, room_id=room_id)
-
- @defer.inlineCallbacks
- def STALE_test_invite_join(self):
- room_id = "foo"
- user_id = "@bob:red"
- target_user_id = "@bob:red"
- content = {"membership": Membership.JOIN}
-
- event = self.hs.get_event_factory().create_event(
- etype=RoomMemberEvent.TYPE,
- user_id=user_id,
- target_user_id=target_user_id,
- room_id=room_id,
- membership=Membership.JOIN,
- content=content,
- )
-
- joined = ["red", "blue", "green"]
-
- self.state_handler.handle_new_event.return_value = defer.succeed(True)
- self.datastore.get_joined_hosts_for_room.return_value = (
- defer.succeed(joined)
- )
-
- store_id = "store_id_fooo"
- self.datastore.store_room_member.return_value = defer.succeed(store_id)
- self.datastore.get_room.return_value = defer.succeed(None)
-
- prev_state = NonCallableMock(name="prev_state")
- prev_state.membership = Membership.INVITE
- prev_state.sender = "@foo:blue"
- self.datastore.get_room_member.return_value = defer.succeed(prev_state)
-
- # Actual invocation
- yield self.room_member_handler.change_membership(event)
-
- self.datastore.get_room_member.assert_called_once_with(
- target_user_id, room_id
- )
-
- self.assertTrue(self.federation.handle_new_event.called)
- args = self.federation.handle_new_event.call_args[0]
- invite_join_event = args[0]
-
- self.assertTrue(InviteJoinEvent.TYPE, invite_join_event.TYPE)
- self.assertTrue("blue", invite_join_event.target_host)
- self.assertTrue(room_id, invite_join_event.room_id)
- self.assertTrue(user_id, invite_join_event.user_id)
- self.assertFalse(hasattr(invite_join_event, "state_key"))
-
- self.assertEquals(
- set(["blue"]),
- set(invite_join_event.destinations)
- )
-
- self.federation.get_state_for_room.assert_called_once_with(
- "blue", room_id
+ event, extra_users=[user]
)
- self.assertFalse(self.datastore.store_room_member.called)
-
- self.assertFalse(self.notifier.on_new_room_event.called)
- self.assertFalse(self.state_handler.handle_new_event.called)
-
- @defer.inlineCallbacks
- def STALE_test_invite_join_public(self):
- room_id = "#foo:blue"
- user_id = "@bob:red"
- target_user_id = "@bob:red"
- content = {"membership": Membership.JOIN}
-
- event = self.hs.get_event_factory().create_event(
- etype=RoomMemberEvent.TYPE,
- user_id=user_id,
- target_user_id=target_user_id,
- room_id=room_id,
- membership=Membership.JOIN,
- content=content,
- )
-
- joined = ["red", "blue", "green"]
-
- self.state_handler.handle_new_event.return_value = defer.succeed(True)
- self.datastore.get_joined_hosts_for_room.return_value = (
- defer.succeed(joined)
- )
-
- store_id = "store_id_fooo"
- self.datastore.store_room_member.return_value = defer.succeed(store_id)
- self.datastore.get_room.return_value = defer.succeed(None)
-
- prev_state = NonCallableMock(name="prev_state")
- prev_state.membership = Membership.INVITE
- prev_state.sender = "@foo:blue"
- self.datastore.get_room_member.return_value = defer.succeed(prev_state)
-
- # Actual invocation
- yield self.room_member_handler.change_membership(event)
-
- self.assertTrue(self.federation.handle_new_event.called)
- args = self.federation.handle_new_event.call_args[0]
- invite_join_event = args[0]
-
- self.assertTrue(InviteJoinEvent.TYPE, invite_join_event.TYPE)
- self.assertTrue("blue", invite_join_event.target_host)
- self.assertTrue("foo", invite_join_event.room_id)
- self.assertTrue(user_id, invite_join_event.user_id)
- self.assertFalse(hasattr(invite_join_event, "state_key"))
-
- self.assertEquals(
- set(["blue"]),
- set(invite_join_event.destinations)
- )
-
- self.federation.get_state_for_room.assert_called_once_with(
- "blue", "foo"
+ join_signal_observer.assert_called_with(
+ user=user, room_id=room_id
)
- self.assertFalse(self.datastore.store_room_member.called)
-
- self.assertFalse(self.notifier.on_new_room_event.called)
- self.assertFalse(self.state_handler.handle_new_event.called)
-
class RoomCreationTest(unittest.TestCase):
def setUp(self):
self.hostname = "red"
+
+ self.mock_config = NonCallableMock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer(
self.hostname,
db_pool=None,
@@ -346,11 +229,14 @@ class RoomCreationTest(unittest.TestCase):
"federation_handler",
]),
auth=NonCallableMock(spec_set=["check"]),
- state_handler=NonCallableMock(spec_set=["handle_new_event"]),
+ state_handler=NonCallableMock(spec_set=[
+ "handle_new_event",
+ "annotate_state_groups",
+ ]),
ratelimiter=NonCallableMock(spec_set=[
"send_message",
]),
- config=NonCallableMock(),
+ config=self.mock_config,
)
self.federation = NonCallableMock(spec_set=[
@@ -400,6 +286,6 @@ class RoomCreationTest(unittest.TestCase):
self.assertEquals(user_id, join_event.user_id)
self.assertEquals(user_id, join_event.state_key)
- self.assertTrue(self.state_handler.handle_new_event.called)
+ self.assertTrue(self.state_handler.annotate_state_groups.called)
self.assertTrue(self.federation.handle_new_event.called)
diff --git a/tests/handlers/test_typing.py b/tests/handlers/test_typing.py
index f1d3b27f74..07acda5eee 100644
--- a/tests/handlers/test_typing.py
+++ b/tests/handlers/test_typing.py
@@ -40,6 +40,7 @@ def _expect_edu(destination, edu_type, content, origin="test"):
"content": content,
}
],
+ "pdu_failures": [],
}
diff --git a/tests/rest/test_events.py b/tests/rest/test_events.py
index 79b371c04d..82f5d277e6 100644
--- a/tests/rest/test_events.py
+++ b/tests/rest/test_events.py
@@ -25,10 +25,7 @@ import synapse.rest.room
from synapse.server import HomeServer
-# python imports
-import json
-
-from ..utils import MockHttpResource, MemoryDataStore
+from ..utils import MockHttpResource, MemoryDataStore, MockKey
from .utils import RestTestCase
from mock import Mock, NonCallableMock
@@ -49,7 +46,7 @@ class EventStreamPaginationApiTestCase(unittest.TestCase):
def tearDown(self):
pass
- def test_long_poll(self):
+ def TODO_test_long_poll(self):
# stream from 'end' key, send (self+other) message, expect message.
# stream from 'END', send (self+other) message, expect message.
@@ -64,7 +61,7 @@ class EventStreamPaginationApiTestCase(unittest.TestCase):
pass
- def test_stream_forward(self):
+ def TODO_test_stream_forward(self):
# stream from START, expect injected items
# stream from 'start' key, expect same content
@@ -80,14 +77,14 @@ class EventStreamPaginationApiTestCase(unittest.TestCase):
# returned as end key
pass
- def test_limits(self):
+ def TODO_test_limits(self):
# stream from a key, expect limit_num items
# stream from START, expect limit_num items
pass
- def test_range(self):
+ def TODO_test_range(self):
# stream from key to key, expect X items
# stream from key to END, expect X items
@@ -97,7 +94,7 @@ class EventStreamPaginationApiTestCase(unittest.TestCase):
# stream from START to END, expect all items
pass
- def test_direction(self):
+ def TODO_test_direction(self):
# stream from END to START and fwds, expect newest first
# stream from END to START and bwds, expect oldest first
@@ -116,12 +113,18 @@ class EventStreamPermissionsTestCase(RestTestCase):
def setUp(self):
self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)
- state_handler = Mock(spec=["handle_new_event"])
+ state_handler = Mock(spec=[
+ "handle_new_event",
+ "annotate_state_groups"
+ ])
state_handler.handle_new_event.return_value = True
persistence_service = Mock(spec=["get_latest_pdus_in_context"])
persistence_service.get_latest_pdus_in_context.return_value = []
+ self.mock_config = NonCallableMock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer(
"test",
db_pool=None,
@@ -139,7 +142,7 @@ class EventStreamPermissionsTestCase(RestTestCase):
ratelimiter=NonCallableMock(spec_set=[
"send_message",
]),
- config=NonCallableMock(),
+ config=self.mock_config,
)
self.ratelimiter = hs.get_ratelimiter()
self.ratelimiter.send_message.return_value = (True, 0)
@@ -148,6 +151,7 @@ class EventStreamPermissionsTestCase(RestTestCase):
hs.get_handlers().federation_handler = Mock()
hs.get_clock().time_msec.return_value = 1000000
+ hs.get_clock().time.return_value = 1000
synapse.rest.register.register_servlets(hs, self.mock_resource)
synapse.rest.events.register_servlets(hs, self.mock_resource)
@@ -172,12 +176,14 @@ class EventStreamPermissionsTestCase(RestTestCase):
def test_stream_basic_permissions(self):
# invalid token, expect 403
(code, response) = yield self.mock_resource.trigger_get(
- "/events?access_token=%s" % ("invalid" + self.token))
+ "/events?access_token=%s" % ("invalid" + self.token, )
+ )
self.assertEquals(403, code, msg=str(response))
# valid token, expect content
(code, response) = yield self.mock_resource.trigger_get(
- "/events?access_token=%s&timeout=0" % (self.token))
+ "/events?access_token=%s&timeout=0" % (self.token,)
+ )
self.assertEquals(200, code, msg=str(response))
self.assertTrue("chunk" in response)
self.assertTrue("start" in response)
@@ -185,15 +191,23 @@ class EventStreamPermissionsTestCase(RestTestCase):
@defer.inlineCallbacks
def test_stream_room_permissions(self):
- room_id = yield self.create_room_as(self.other_user,
- tok=self.other_token)
+ room_id = yield self.create_room_as(
+ self.other_user,
+ tok=self.other_token
+ )
yield self.send(room_id, tok=self.other_token)
# invited to room (expect no content for room)
- yield self.invite(room_id, src=self.other_user, targ=self.user_id,
- tok=self.other_token)
+ yield self.invite(
+ room_id,
+ src=self.other_user,
+ targ=self.user_id,
+ tok=self.other_token
+ )
+
(code, response) = yield self.mock_resource.trigger_get(
- "/events?access_token=%s&timeout=0" % (self.token))
+ "/events?access_token=%s&timeout=0" % (self.token,)
+ )
self.assertEquals(200, code, msg=str(response))
self.assertEquals(0, len(response["chunk"]))
@@ -203,7 +217,7 @@ class EventStreamPermissionsTestCase(RestTestCase):
# left to room (expect no content for room)
- def test_stream_items(self):
+ def TODO_test_stream_items(self):
# new user, no content
# join room, expect 1 item (join)
diff --git a/tests/rest/test_profile.py b/tests/rest/test_profile.py
index b0f48e7fd8..3a0d1e700a 100644
--- a/tests/rest/test_profile.py
+++ b/tests/rest/test_profile.py
@@ -18,9 +18,9 @@
from tests import unittest
from twisted.internet import defer
-from mock import Mock
+from mock import Mock, NonCallableMock
-from ..utils import MockHttpResource
+from ..utils import MockHttpResource, MockKey
from synapse.api.errors import SynapseError, AuthError
from synapse.server import HomeServer
@@ -41,6 +41,9 @@ class ProfileTestCase(unittest.TestCase):
"set_avatar_url",
])
+ self.mock_config = NonCallableMock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer("test",
db_pool=None,
http_client=None,
@@ -48,6 +51,7 @@ class ProfileTestCase(unittest.TestCase):
federation=Mock(),
replication_layer=Mock(),
datastore=None,
+ config=self.mock_config,
)
def _get_user_by_req(request=None):
diff --git a/tests/rest/test_rooms.py b/tests/rest/test_rooms.py
index 1ce9b8a83d..7170193051 100644
--- a/tests/rest/test_rooms.py
+++ b/tests/rest/test_rooms.py
@@ -27,7 +27,7 @@ from synapse.server import HomeServer
import json
import urllib
-from ..utils import MockHttpResource, MemoryDataStore
+from ..utils import MockHttpResource, MemoryDataStore, MockKey
from .utils import RestTestCase
from mock import Mock, NonCallableMock
@@ -50,6 +50,9 @@ class RoomPermissionsTestCase(RestTestCase):
persistence_service = Mock(spec=["get_latest_pdus_in_context"])
persistence_service.get_latest_pdus_in_context.return_value = []
+ self.mock_config = NonCallableMock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer(
"red",
db_pool=None,
@@ -61,7 +64,7 @@ class RoomPermissionsTestCase(RestTestCase):
ratelimiter=NonCallableMock(spec_set=[
"send_message",
]),
- config=NonCallableMock(),
+ config=self.mock_config,
)
self.ratelimiter = hs.get_ratelimiter()
self.ratelimiter.send_message.return_value = (True, 0)
@@ -408,6 +411,9 @@ class RoomsMemberListTestCase(RestTestCase):
persistence_service = Mock(spec=["get_latest_pdus_in_context"])
persistence_service.get_latest_pdus_in_context.return_value = []
+ self.mock_config = NonCallableMock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer(
"red",
db_pool=None,
@@ -419,7 +425,7 @@ class RoomsMemberListTestCase(RestTestCase):
ratelimiter=NonCallableMock(spec_set=[
"send_message",
]),
- config=NonCallableMock(),
+ config=self.mock_config,
)
self.ratelimiter = hs.get_ratelimiter()
self.ratelimiter.send_message.return_value = (True, 0)
@@ -497,6 +503,9 @@ class RoomsCreateTestCase(RestTestCase):
persistence_service = Mock(spec=["get_latest_pdus_in_context"])
persistence_service.get_latest_pdus_in_context.return_value = []
+ self.mock_config = NonCallableMock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer(
"red",
db_pool=None,
@@ -508,7 +517,7 @@ class RoomsCreateTestCase(RestTestCase):
ratelimiter=NonCallableMock(spec_set=[
"send_message",
]),
- config=NonCallableMock(),
+ config=self.mock_config,
)
self.ratelimiter = hs.get_ratelimiter()
self.ratelimiter.send_message.return_value = (True, 0)
@@ -598,6 +607,9 @@ class RoomTopicTestCase(RestTestCase):
persistence_service = Mock(spec=["get_latest_pdus_in_context"])
persistence_service.get_latest_pdus_in_context.return_value = []
+ self.mock_config = NonCallableMock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer(
"red",
db_pool=None,
@@ -609,7 +621,7 @@ class RoomTopicTestCase(RestTestCase):
ratelimiter=NonCallableMock(spec_set=[
"send_message",
]),
- config=NonCallableMock(),
+ config=self.mock_config,
)
self.ratelimiter = hs.get_ratelimiter()
self.ratelimiter.send_message.return_value = (True, 0)
@@ -712,6 +724,9 @@ class RoomMemberStateTestCase(RestTestCase):
persistence_service = Mock(spec=["get_latest_pdus_in_context"])
persistence_service.get_latest_pdus_in_context.return_value = []
+ self.mock_config = NonCallableMock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer(
"red",
db_pool=None,
@@ -723,7 +738,7 @@ class RoomMemberStateTestCase(RestTestCase):
ratelimiter=NonCallableMock(spec_set=[
"send_message",
]),
- config=NonCallableMock(),
+ config=self.mock_config,
)
self.ratelimiter = hs.get_ratelimiter()
self.ratelimiter.send_message.return_value = (True, 0)
@@ -853,6 +868,9 @@ class RoomMessagesTestCase(RestTestCase):
persistence_service = Mock(spec=["get_latest_pdus_in_context"])
persistence_service.get_latest_pdus_in_context.return_value = []
+ self.mock_config = NonCallableMock()
+ self.mock_config.signing_key = [MockKey()]
+
hs = HomeServer(
"red",
db_pool=None,
@@ -864,7 +882,7 @@ class RoomMessagesTestCase(RestTestCase):
ratelimiter=NonCallableMock(spec_set=[
"send_message",
]),
- config=NonCallableMock(),
+ config=self.mock_config,
)
self.ratelimiter = hs.get_ratelimiter()
self.ratelimiter.send_message.return_value = (True, 0)
diff --git a/tests/storage/test_redaction.py b/tests/storage/test_redaction.py
index dae1641ea1..fb175a5c4c 100644
--- a/tests/storage/test_redaction.py
+++ b/tests/storage/test_redaction.py
@@ -61,6 +61,7 @@ class RedactionTestCase(unittest.TestCase):
membership=membership,
content={"membership": membership},
depth=self.depth,
+ prev_events=[],
)
event.content.update(extra_content)
@@ -68,6 +69,9 @@ class RedactionTestCase(unittest.TestCase):
if prev_state:
event.prev_state = prev_state
+ event.state_events = None
+ event.hashes = {}
+
# Have to create a join event using the eventfactory
yield self.store.persist_event(
event
@@ -85,8 +89,12 @@ class RedactionTestCase(unittest.TestCase):
room_id=room.to_string(),
content={"body": body, "msgtype": u"message"},
depth=self.depth,
+ prev_events=[],
)
+ event.state_events = None
+ event.hashes = {}
+
yield self.store.persist_event(
event
)
@@ -102,8 +110,12 @@ class RedactionTestCase(unittest.TestCase):
content={"reason": reason},
depth=self.depth,
redacts=event_id,
+ prev_events=[],
)
+ event.state_events = None
+ event.hashes = {}
+
yield self.store.persist_event(
event
)
diff --git a/tests/storage/test_room.py b/tests/storage/test_room.py
index 369a73d917..4ff02c306b 100644
--- a/tests/storage/test_room.py
+++ b/tests/storage/test_room.py
@@ -127,7 +127,7 @@ class RoomEventsStoreTestCase(unittest.TestCase):
)
@defer.inlineCallbacks
- def test_room_name(self):
+ def STALE_test_room_name(self):
name = u"A-Room-Name"
yield self.inject_room_event(
@@ -150,7 +150,7 @@ class RoomEventsStoreTestCase(unittest.TestCase):
)
@defer.inlineCallbacks
- def test_room_name(self):
+ def STALE_test_room_topic(self):
topic = u"A place for things"
yield self.inject_room_event(
diff --git a/tests/storage/test_roommember.py b/tests/storage/test_roommember.py
index eae278ee8d..9e2b2e31c8 100644
--- a/tests/storage/test_roommember.py
+++ b/tests/storage/test_roommember.py
@@ -51,16 +51,22 @@ class RoomMemberStoreTestCase(unittest.TestCase):
@defer.inlineCallbacks
def inject_room_member(self, room, user, membership):
# Have to create a join event using the eventfactory
+ event = self.event_factory.create_event(
+ etype=RoomMemberEvent.TYPE,
+ user_id=user.to_string(),
+ state_key=user.to_string(),
+ room_id=room.to_string(),
+ membership=membership,
+ content={"membership": membership},
+ depth=1,
+ prev_events=[],
+ )
+
+ event.state_events = None
+ event.hashes = {}
+
yield self.store.persist_event(
- self.event_factory.create_event(
- etype=RoomMemberEvent.TYPE,
- user_id=user.to_string(),
- state_key=user.to_string(),
- room_id=room.to_string(),
- membership=membership,
- content={"membership": membership},
- depth=1,
- )
+ event
)
@defer.inlineCallbacks
diff --git a/tests/storage/test_stream.py b/tests/storage/test_stream.py
index ab30e6ea25..b034fd8f16 100644
--- a/tests/storage/test_stream.py
+++ b/tests/storage/test_stream.py
@@ -59,8 +59,12 @@ class StreamStoreTestCase(unittest.TestCase):
membership=membership,
content={"membership": membership},
depth=self.depth,
+ prev_events=[],
)
+ event.state_events = None
+ event.hashes = {}
+
if prev_state:
event.prev_state = prev_state
@@ -75,15 +79,21 @@ class StreamStoreTestCase(unittest.TestCase):
def inject_message(self, room, user, body):
self.depth += 1
+ event = self.event_factory.create_event(
+ etype=MessageEvent.TYPE,
+ user_id=user.to_string(),
+ room_id=room.to_string(),
+ content={"body": body, "msgtype": u"message"},
+ depth=self.depth,
+ prev_events=[],
+ )
+
+ event.state_events = None
+ event.hashes = {}
+
# Have to create a join event using the eventfactory
yield self.store.persist_event(
- self.event_factory.create_event(
- etype=MessageEvent.TYPE,
- user_id=user.to_string(),
- room_id=room.to_string(),
- content={"body": body, "msgtype": u"message"},
- depth=self.depth,
- )
+ event
)
@defer.inlineCallbacks
diff --git a/tests/utils.py b/tests/utils.py
index 60fd6085ac..d8be73dba8 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -118,13 +118,14 @@ class MockHttpResource(HttpServer):
class MockKey(object):
alg = "mock_alg"
version = "mock_version"
+ signature = b"\x9a\x87$"
@property
def verify_key(self):
return self
def sign(self, message):
- return b"\x9a\x87$"
+ return self
def verify(self, message, sig):
assert sig == b"\x9a\x87$"
|