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={}, 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(1, mem_handler.change_membership.call_count) call_args = get_mock_call_args(lambda event, do_auth: None, mem_handler.change_membership) 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)
def new_fake_pdu(pdu_id, context, pdu_type, state_key, prev_state_id, user_id, depth=0): new_pdu = Pdu( pdu_id=pdu_id, pdu_type=pdu_type, state_key=state_key, user_id=user_id, prev_state_id=prev_state_id, origin="example.com", context="context", ts=1405353060021, depth=depth, content_json="{}", unrecognized_keys="{}", outlier=True, is_state=True, prev_state_origin="example.com", have_processed=True, content={}, ) return new_pdu
def test_msg(self): pdu = Pdu( pdu_type=MessageEvent.TYPE, context="foo", content={"msgtype": u"fooo"}, ts=0, pdu_id="a", origin="b", ) store_id = "ASD" self.datastore.persist_event.return_value = defer.succeed(store_id) self.datastore.get_room.return_value = defer.succeed(True) 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)
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={}, 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)
def test_event_from_pdu(self): pdu = Pdu( pdu_id="foo", context="rooooom", pdu_type="m.room.message", origin="bar.com", 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("*****@*****.**", 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(["*****@*****.**"], event.prev_events) self.assertEquals(pdu.content, event.content)
def test_send_pdu(self): self.mock_http_client.put_json.return_value = defer.succeed( (200, "OK") ) pdu = Pdu( pdu_id="abc123def456", origin="red", destinations=["remote"], context="my-context", ts=123456789002, pdu_type="m.test", content={"testing": "content here"}, depth=1, ) yield self.federation.send_pdu(pdu) self.mock_http_client.put_json.assert_called_with( "remote", path="/_matrix/federation/v1/send/1000000/", data={ "ts": 1000000, "origin": "test", "pdus": [ { "origin": "red", "pdu_id": "abc123def456", "prev_pdus": [], "ts": 123456789002, "context": "my-context", "pdu_type": "m.test", "is_state": False, "content": {"testing": "content here"}, "depth": 1, }, ] }, on_send_callback=ANY, )