From 415a869f1f53bd4bf22a69e74081875dc9c17735 Mon Sep 17 00:00:00 2001 From: Jason Little Date: Mon, 3 Aug 2026 13:47:26 -0500 Subject: [PATCH] fix RemoteJoinHelper to handle v12 rooms (#20021) While preparing for the default room version change to "12", the new tests for [FederationJoinUpgradedRoomTestCase](https://github.com/element-hq/synapse/blob/36664cac4fdec38993c68078cd9a82452b56dca7/tests/federation/test_federation_join_upgraded_room.py#L44) were unable to handle creation events inside of the manufactured `auth_events` sections. All of these tests fail. Related to https://github.com/element-hq/synapse/pull/20015 as another recent fix to `RemoteJoinHelper` ### Testing strategy To test, I recommend changing the `DEFAULT_ROOM_VERSION` in [the `server.py` config file](https://github.com/element-hq/synapse/blob/36664cac4fdec38993c68078cd9a82452b56dca7/synapse/config/server.py#L179) to `"12"`, then running `poetry run trial tests.federation.test_federation_join_upgraded_room.FederationJoinUpgradedRoomTestCase` for these selective tests. Alternatively, creating the `default_config()` for the `TestCase` in question to set the default room version, but that is more work. --- changelog.d/20021.misc | 1 + tests/federation/_remote_join.py | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 changelog.d/20021.misc diff --git a/changelog.d/20021.misc b/changelog.d/20021.misc new file mode 100644 index 0000000000..9291f5eea0 --- /dev/null +++ b/changelog.d/20021.misc @@ -0,0 +1 @@ +Fix `RemoteJoinHelper` test helper to handle room version "12" rooms. Contributed by @famedly @jason-famedly. diff --git a/tests/federation/_remote_join.py b/tests/federation/_remote_join.py index feb9c528c9..8a4e438466 100644 --- a/tests/federation/_remote_join.py +++ b/tests/federation/_remote_join.py @@ -146,7 +146,9 @@ class RemoteJoinHelper: "type": EventTypes.Member, "state_key": remote_creator_user_id, "content": {"membership": Membership.JOIN}, - "auth_events": [room_create_event.event_id], + "auth_events": [room_create_event.event_id] + if not room_version.msc4291_room_ids_as_hashes + else [], "prev_events": [room_create_event.event_id], }, room_version=room_version, @@ -173,7 +175,9 @@ class RemoteJoinHelper: "auth_events": [ room_create_event.event_id, creator_membership_event.event_id, - ], + ] + if not room_version.msc4291_room_ids_as_hashes + else [creator_membership_event.event_id], "prev_events": [prev_event.event_id], }, room_version=room_version, @@ -215,7 +219,9 @@ class RemoteJoinHelper: "auth_events": [ room_create_event.event_id, creator_membership_event.event_id, - ], + ] + if not room_version.msc4291_room_ids_as_hashes + else [creator_membership_event.event_id], "prev_events": [ extra_events[-1].event_id if extra_events @@ -254,7 +260,9 @@ class RemoteJoinHelper: "auth_events": [ room_create_event.event_id, invite_membership_event.event_id, - ], + ] + if not room_version.msc4291_room_ids_as_hashes + else [invite_membership_event.event_id], "prev_events": [invite_membership_event.event_id], }, room_version=room_version,