Allow specifying room version in 'RestHelper.create_room_as' and add typing (#8854)

This PR adds a `room_version` argument to the `RestHelper`'s `create_room_as` function for tests. I plan to use this for testing knocking, which currently uses an unstable room version.
This commit is contained in:
Andrew Morgan 2020-12-02 10:38:18 +00:00 committed by GitHub
parent 4d9496559d
commit edb3d3f827
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 2 deletions

1
changelog.d/8854.misc Normal file
View file

@ -0,0 +1 @@
Allow for specifying a room version when creating a room in unit tests via `RestHelper.create_room_as`.

View file

@ -41,14 +41,37 @@ class RestHelper:
auth_user_id = attr.ib()
def create_room_as(
self, room_creator=None, is_public=True, tok=None, expect_code=200,
):
self,
room_creator: str = None,
is_public: bool = True,
room_version: str = None,
tok: str = None,
expect_code: int = 200,
) -> str:
"""
Create a room.
Args:
room_creator: The user ID to create the room with.
is_public: If True, the `visibility` parameter will be set to the
default (public). Otherwise, the `visibility` parameter will be set
to "private".
room_version: The room version to create the room as. Defaults to Synapse's
default room version.
tok: The access token to use in the request.
expect_code: The expected HTTP response code.
Returns:
The ID of the newly created room.
"""
temp_id = self.auth_user_id
self.auth_user_id = room_creator
path = "/_matrix/client/r0/createRoom"
content = {}
if not is_public:
content["visibility"] = "private"
if room_version:
content["room_version"] = room_version
if tok:
path = path + "?access_token=%s" % tok