Skip to content
Snippets Groups Projects
Unverified Commit 83324755 authored by reivilibre's avatar reivilibre Committed by GitHub
Browse files

Allow specifying the application service-specific `user_id` parameter in the...

Allow specifying the application service-specific `user_id` parameter in the `join` test helper. (#11616)
parent 964f5b93
No related branches found
No related tags found
No related merge requests found
Expose the registered device ID from the `register_appservice_user` test helper.
\ No newline at end of file
Enhance user registration test helpers to make them more useful for tests involving Application Services and devices.
Enhance user registration test helpers to make them more useful for tests involving Application Services and devices.
......@@ -31,6 +31,7 @@ from typing import (
overload,
)
from unittest.mock import patch
from urllib.parse import urlencode
import attr
from typing_extensions import Literal
......@@ -147,12 +148,20 @@ class RestHelper:
expect_code=expect_code,
)
def join(self, room=None, user=None, expect_code=200, tok=None):
def join(
self,
room: str,
user: Optional[str] = None,
expect_code: int = 200,
tok: Optional[str] = None,
appservice_user_id: Optional[str] = None,
) -> None:
self.change_membership(
room=room,
src=user,
targ=user,
tok=tok,
appservice_user_id=appservice_user_id,
membership=Membership.JOIN,
expect_code=expect_code,
)
......@@ -209,11 +218,12 @@ class RestHelper:
def change_membership(
self,
room: str,
src: str,
targ: str,
src: Optional[str],
targ: Optional[str],
membership: str,
extra_data: Optional[dict] = None,
tok: Optional[str] = None,
appservice_user_id: Optional[str] = None,
expect_code: int = 200,
expect_errcode: Optional[str] = None,
) -> None:
......@@ -227,15 +237,26 @@ class RestHelper:
membership: The type of membership event
extra_data: Extra information to include in the content of the event
tok: The user access token to use
appservice_user_id: The `user_id` URL parameter to pass.
This allows driving an application service user
using an application service access token in `tok`.
expect_code: The expected HTTP response code
expect_errcode: The expected Matrix error code
"""
temp_id = self.auth_user_id
self.auth_user_id = src
path = "/_matrix/client/r0/rooms/%s/state/m.room.member/%s" % (room, targ)
path = f"/_matrix/client/r0/rooms/{room}/state/m.room.member/{targ}"
url_params: Dict[str, str] = {}
if tok:
path = path + "?access_token=%s" % tok
url_params["access_token"] = tok
if appservice_user_id:
url_params["user_id"] = appservice_user_id
if url_params:
path += "?" + urlencode(url_params)
data = {"membership": membership}
data.update(extra_data or {})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment