Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Allow specifying the application service-specific user_id parameter…
Browse files Browse the repository at this point in the history
… in the `join` test helper. (#11616)
  • Loading branch information
reivilibre authored Feb 3, 2022
1 parent 964f5b9 commit 8332475
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 6 deletions.
2 changes: 1 addition & 1 deletion changelog.d/11615.misc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Expose the registered device ID from the `register_appservice_user` test helper.
Enhance user registration test helpers to make them more useful for tests involving Application Services and devices.
1 change: 1 addition & 0 deletions changelog.d/11616.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Enhance user registration test helpers to make them more useful for tests involving Application Services and devices.
31 changes: 26 additions & 5 deletions tests/rest/client/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
overload,
)
from unittest.mock import patch
from urllib.parse import urlencode

import attr
from typing_extensions import Literal
Expand Down Expand Up @@ -147,12 +148,20 @@ def invite(self, room=None, src=None, targ=None, expect_code=200, tok=None):
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,
)
Expand Down Expand Up @@ -209,11 +218,12 @@ def ban(self, room: str, src: str, targ: str, **kwargs: object):
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:
Expand All @@ -227,15 +237,26 @@ def change_membership(
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 {})
Expand Down

0 comments on commit 8332475

Please sign in to comment.