summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/handlers/test_room.py55
1 files changed, 40 insertions, 15 deletions
diff --git a/tests/handlers/test_room.py b/tests/handlers/test_room.py
index 146ed21b65..55c9f6e142 100644
--- a/tests/handlers/test_room.py
+++ b/tests/handlers/test_room.py
@@ -58,9 +58,8 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
                 "profile_handler",
                 "federation_handler",
             ]),
-            auth=NonCallableMock(spec_set=["check"]),
+            auth=NonCallableMock(spec_set=["check", "add_auth_events"]),
             state_handler=NonCallableMock(spec_set=[
-                "handle_new_event",
                 "annotate_state_groups",
             ]),
             config=self.mock_config,
@@ -68,6 +67,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
 
         self.federation = NonCallableMock(spec_set=[
             "handle_new_event",
+            "send_invite",
             "get_state_for_room",
         ])
 
@@ -110,7 +110,6 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
 
         joined = ["red", "green"]
 
-        self.state_handler.handle_new_event.return_value = defer.succeed(True)
         self.datastore.get_joined_hosts_for_room.return_value = (
             defer.succeed(joined)
         )
@@ -120,6 +119,18 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
 
         self.datastore.get_room_member.return_value = defer.succeed(None)
 
+        event.state_events = {
+            (RoomMemberEvent.TYPE, "@alice:green"): self._create_member(
+                user_id="@alice:green",
+                room_id=room_id,
+            ),
+            (RoomMemberEvent.TYPE, "@bob:red"): self._create_member(
+                user_id="@bob:red",
+                room_id=room_id,
+            ),
+            (RoomMemberEvent.TYPE, target_user_id): event,
+        }
+
         # Actual invocation
         yield self.room_member_handler.change_membership(event)
 
@@ -128,7 +139,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
         )
 
         self.assertEquals(
-            set(["blue", "red", "green"]),
+            set(["red", "green"]),
             set(event.destinations)
         )
 
@@ -147,22 +158,14 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
         room_id = "!foo:red"
         user_id = "@bob:red"
         user = self.hs.parse_userid(user_id)
-        target_user_id = "@bob:red"
-        content = {"membership": Membership.JOIN}
 
-        event = self.hs.get_event_factory().create_event(
-            etype=RoomMemberEvent.TYPE,
+        event = self._create_member(
             user_id=user_id,
-            state_key=target_user_id,
             room_id=room_id,
-            membership=Membership.JOIN,
-            content=content,
         )
 
         joined = ["red", "green"]
 
-        self.state_handler.handle_new_event.return_value = defer.succeed(True)
-
         def get_joined(*args):
             return defer.succeed(joined)
 
@@ -180,6 +183,14 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
         join_signal_observer = Mock()
         self.distributor.observe("user_joined_room", join_signal_observer)
 
+        event.state_events = {
+            (RoomMemberEvent.TYPE, "@alice:green"): self._create_member(
+                user_id="@alice:green",
+                room_id=room_id,
+            ),
+            (RoomMemberEvent.TYPE, user_id): event,
+        }
+
         # Actual invocation
         yield self.room_member_handler.change_membership(event)
 
@@ -203,6 +214,16 @@ class RoomMemberHandlerTestCase(unittest.TestCase):
             user=user, room_id=room_id
         )
 
+    def _create_member(self, user_id, room_id):
+        return self.hs.get_event_factory().create_event(
+            etype=RoomMemberEvent.TYPE,
+            user_id=user_id,
+            state_key=user_id,
+            room_id=room_id,
+            membership=Membership.JOIN,
+            content={"membership": Membership.JOIN},
+        )
+
 
 class RoomCreationTest(unittest.TestCase):
 
@@ -228,9 +249,8 @@ class RoomCreationTest(unittest.TestCase):
                 "room_member_handler",
                 "federation_handler",
             ]),
-            auth=NonCallableMock(spec_set=["check"]),
+            auth=NonCallableMock(spec_set=["check", "add_auth_events"]),
             state_handler=NonCallableMock(spec_set=[
-                "handle_new_event",
                 "annotate_state_groups",
             ]),
             ratelimiter=NonCallableMock(spec_set=[
@@ -259,6 +279,11 @@ class RoomCreationTest(unittest.TestCase):
         ])
         self.room_member_handler = self.handlers.room_member_handler
 
+        def annotate(event):
+            event.state_events = {}
+            return defer.succeed(None)
+        self.state_handler.annotate_state_groups.side_effect = annotate
+
         def hosts(room):
             return defer.succeed([])
         self.datastore.get_joined_hosts_for_room.side_effect = hosts