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

Commit b54983d

Browse files
committed
Add unit tests
1 parent 8cb9d00 commit b54983d

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

tests/handlers/test_oauth_delegation.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ def default_config(self) -> Dict[str, Any]:
122122
"client_id": CLIENT_ID,
123123
"client_auth_method": "client_secret_post",
124124
"client_secret": CLIENT_SECRET,
125+
"admin_token": "admin_token_value",
125126
}
126127
}
127128
return config
@@ -791,3 +792,39 @@ def test_admin_api_endpoints_removed(self) -> None:
791792
self.expect_unrecognized("GET", "/_synapse/admin/v1/users/foo/admin")
792793
self.expect_unrecognized("PUT", "/_synapse/admin/v1/users/foo/admin")
793794
self.expect_unrecognized("POST", "/_synapse/admin/v1/account_validity/validity")
795+
796+
def test_admin_token(self) -> None:
797+
"""The handler should return a requester with admin rights when admin_token is used."""
798+
799+
request = Mock(args={})
800+
request.args[b"access_token"] = [b"admin_token_value"]
801+
request.requestHeaders.getRawHeaders = mock_getRawHeaders()
802+
requester = self.get_success(self.auth.get_user_by_req(request))
803+
self.assertEqual(
804+
requester.user.to_string(), "@%s:%s" % ("__oidc_admin", SERVER_NAME)
805+
)
806+
self.assertEqual(requester.is_guest, False)
807+
self.assertEqual(requester.device_id, None)
808+
self.assertEqual(
809+
get_awaitable_result(self.auth.is_server_admin(requester)), True
810+
)
811+
812+
def test_oidc_admin_impersonate_user_id(self) -> None:
813+
"""The handler should return a requester with the correct user when _oidc_admin_impersonate_user_id param is used."""
814+
815+
request = Mock(
816+
args={
817+
b"_oidc_admin_impersonate_user_id": [
818+
("@foo:" + SERVER_NAME).encode("ascii")
819+
],
820+
b"access_token": [b"admin_token_value"],
821+
}
822+
)
823+
request.requestHeaders.getRawHeaders = mock_getRawHeaders()
824+
requester = self.get_success(self.auth.get_user_by_req(request))
825+
self.assertEqual(requester.user.to_string(), "@%s:%s" % ("foo", SERVER_NAME))
826+
self.assertEqual(requester.is_guest, False)
827+
self.assertEqual(requester.device_id, None)
828+
self.assertEqual(
829+
get_awaitable_result(self.auth.is_server_admin(requester)), False
830+
)

0 commit comments

Comments
 (0)