Skip to content

Commit 73920f5

Browse files
committed
(maybe) fix handlers.test_federation_event.FederationEventHandlerTests.test_process_pulled_event_with_rejected_missing_state() by introducing a member that can match power levels with the remote member sending rejected power level events
I believe this is caused by the room creator being the member to send the final power levels event. It failed the reverse topological sort in inverted order(the two events were swapped places). Since the room creator has an infinitely higher power level than the remote user, the reverse topological sort should have fallen to the origin_server_ts as the last fallback and it was not
1 parent 46d58a5 commit 73920f5

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

tests/handlers/test_federation_event.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -830,6 +830,9 @@ def test_process_pulled_event_with_rejected_missing_state(self) -> None:
830830
)
831831
room_version = self.get_success(main_store.get_room_version(room_id))
832832

833+
ernie_user_id = self.register_user("ernie", "test")
834+
ernie_tok = self.login("ernie", "test")
835+
self.helper.join(room_id, user=ernie_user_id, tok=ernie_tok)
833836
# Add another local user to the room. This user is going to be kicked in a
834837
# rejected event.
835838
bert_user_id = self.register_user("bert", "test")
@@ -838,13 +841,13 @@ def test_process_pulled_event_with_rejected_missing_state(self) -> None:
838841

839842
# Allow the remote user to kick bert.
840843
# The remote user is going to send a rejected power levels event later on and we
841-
# need state resolution to order it before another power levels event kermit is
844+
# need state resolution to order it before another power levels event ernie is
842845
# going to send later on. Hence we give both users the same power level, so that
843846
# ties are broken by `origin_server_ts`.
844847
self.helper.send_state(
845848
room_id,
846849
"m.room.power_levels",
847-
{"users": {kermit_user_id: 100, OTHER_USER: 100}},
850+
{"users": {ernie_user_id: 100, OTHER_USER: 100}},
848851
tok=kermit_tok,
849852
)
850853

@@ -1008,8 +1011,8 @@ def test_process_pulled_event_with_rejected_missing_state(self) -> None:
10081011
self.helper.send_state(
10091012
room_id,
10101013
"m.room.power_levels",
1011-
{"users": {kermit_user_id: 100, OTHER_USER: 100, bert_user_id: 1}},
1012-
tok=kermit_tok,
1014+
{"users": {ernie_user_id: 100, OTHER_USER: 100, bert_user_id: 1}},
1015+
tok=ernie_tok,
10131016
)["event_id"]
10141017
)
10151018
)

0 commit comments

Comments
 (0)