From 81608490e364d5a332b06606aba0703f2fb5d0a9 Mon Sep 17 00:00:00 2001 From: Patrick Cloke Date: Fri, 10 Jun 2022 07:15:51 -0400 Subject: [PATCH] Stop depending on `room_id` to be returned for children state in the hierarchy response. (#12991) The `room_id` field was removed from MSC2946 before it was accepted. It was initially kept for backwards compatibility and should be removed now that the stable form of the API is used. This change only stops Synapse from validating that it is returned, a future PR will remove returning it as part of the response. --- changelog.d/12991.bugfix | 2 ++ synapse/federation/federation_client.py | 4 ---- tests/handlers/test_room_summary.py | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) create mode 100644 changelog.d/12991.bugfix diff --git a/changelog.d/12991.bugfix b/changelog.d/12991.bugfix new file mode 100644 index 000000000..c6e388d5b --- /dev/null +++ b/changelog.d/12991.bugfix @@ -0,0 +1,2 @@ +Fix a bug where non-standard information was required when requesting the `/hierarchy` API over federation. Introduced +in Synapse v1.41.0. diff --git a/synapse/federation/federation_client.py b/synapse/federation/federation_client.py index ad475a913..66e630556 100644 --- a/synapse/federation/federation_client.py +++ b/synapse/federation/federation_client.py @@ -1642,10 +1642,6 @@ def _validate_hierarchy_event(d: JsonDict) -> None: if not isinstance(event_type, str): raise ValueError("Invalid event: 'event_type' must be a str") - room_id = d.get("room_id") - if not isinstance(room_id, str): - raise ValueError("Invalid event: 'room_id' must be a str") - state_key = d.get("state_key") if not isinstance(state_key, str): raise ValueError("Invalid event: 'state_key' must be a str") diff --git a/tests/handlers/test_room_summary.py b/tests/handlers/test_room_summary.py index 054665569..aa650756e 100644 --- a/tests/handlers/test_room_summary.py +++ b/tests/handlers/test_room_summary.py @@ -178,7 +178,7 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase): result_room_ids.append(result_room["room_id"]) result_children_ids.append( [ - (cs["room_id"], cs["state_key"]) + (result_room["room_id"], cs["state_key"]) for cs in result_room["children_state"] ] )