diff options
author | David Robertson <davidr@element.io> | 2023-12-05 12:06:21 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-05 12:06:21 +0000 |
commit | 0a00c99823818228479f9fdb8c77e61a49a65e18 (patch) | |
tree | 66557d4b4d5939b2f0757a1ced380d4bc2f19381 /tests/rest/client | |
parent | Add how to validate configuration file with synapse.config script (#16714) (diff) | |
download | synapse-0a00c99823818228479f9fdb8c77e61a49a65e18.tar.xz |
Fix upgrading a room without `events` field in power levels (#16725)
Diffstat (limited to 'tests/rest/client')
-rw-r--r-- | tests/rest/client/test_upgrade_room.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/rest/client/test_upgrade_room.py b/tests/rest/client/test_upgrade_room.py index 0b4c691318..28f772261b 100644 --- a/tests/rest/client/test_upgrade_room.py +++ b/tests/rest/client/test_upgrade_room.py @@ -246,6 +246,34 @@ class UpgradeRoomTest(unittest.HomeserverTestCase): # We should now have an integer power level. self.assertEqual(new_power_levels["users"][self.creator], 100, new_power_levels) + def test_events_field_missing(self) -> None: + """Regression test for https://github.com/matrix-org/synapse/issues/16715.""" + # Create a new room. + room_id = self.helper.create_room_as( + self.creator, tok=self.creator_token, room_version="10" + ) + self.helper.join(room_id, self.other, tok=self.other_token) + + # Retrieve the room's current power levels. + power_levels = self.helper.get_state( + room_id, + "m.room.power_levels", + tok=self.creator_token, + ) + + # Remove the events field and re-set the power levels. + del power_levels["events"] + self.helper.send_state( + room_id, + "m.room.power_levels", + body=power_levels, + tok=self.creator_token, + ) + + # Upgrade the room. Check the homeserver reports success. + channel = self._upgrade_room(room_id=room_id) + self.assertEqual(200, channel.code, channel.result) + def test_space(self) -> None: """Test upgrading a space.""" |