diff options
author | Joseph Weston <joseph@weston.cloud> | 2019-03-01 04:05:47 +0100 |
---|---|---|
committer | Joseph Weston <joseph@weston.cloud> | 2019-03-01 09:56:58 +0100 |
commit | 1e8388b311c54d754d6afbe639ed2825c1c1f285 (patch) | |
tree | 3e8ebe1bb68af9ede95c7c6e3376f9e3a989c273 /tests/rest | |
parent | Import 'admin' module rather than 'register_servlets' directly (diff) | |
download | synapse-1e8388b311c54d754d6afbe639ed2825c1c1f285.tar.xz |
Add 'server_version' endpoint to admin API
This is required because the 'Server' HTTP header is not always passed through proxies.
Diffstat (limited to 'tests/rest')
-rw-r--r-- | tests/rest/client/v1/test_admin.py | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/tests/rest/client/v1/test_admin.py b/tests/rest/client/v1/test_admin.py index c926836206..ea03b7e523 100644 --- a/tests/rest/client/v1/test_admin.py +++ b/tests/rest/client/v1/test_admin.py @@ -20,11 +20,45 @@ import json from mock import Mock from synapse.api.constants import UserTypes -from synapse.rest.client.v1 import admin +from synapse.rest.client.v1 import admin, login from tests import unittest +class VersionTestCase(unittest.HomeserverTestCase): + + servlets = [ + admin.register_servlets, + login.register_servlets, + ] + + url = '/_matrix/client/r0/admin/server_version' + + def test_version_string(self): + self.register_user("admin", "pass", admin=True) + self.admin_token = self.login("admin", "pass") + + request, channel = self.make_request("GET", self.url, + access_token=self.admin_token) + self.render(request) + + self.assertEqual(200, int(channel.result["code"]), + msg=channel.result["body"]) + self.assertEqual({'server_version', 'python_version'}, + set(channel.json_body.keys())) + + def test_inaccessible_to_non_admins(self): + self.register_user("unprivileged-user", "pass", admin=False) + user_token = self.login("unprivileged-user", "pass") + + request, channel = self.make_request("GET", self.url, + access_token=user_token) + self.render(request) + + self.assertEqual(403, int(channel.result['code']), + msg=channel.result['body']) + + class UserRegisterTestCase(unittest.HomeserverTestCase): servlets = [admin.register_servlets] |