mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-07-24 05:10:36 -04:00
Add type hints to tests/rest/client
(#12072)
This commit is contained in:
parent
2cc5ea933d
commit
54e74cc15f
11 changed files with 160 additions and 102 deletions
|
@ -13,11 +13,16 @@
|
|||
# limitations under the License.
|
||||
|
||||
import json
|
||||
from http import HTTPStatus
|
||||
|
||||
from twisted.test.proto_helpers import MemoryReactor
|
||||
|
||||
from synapse.api.constants import LoginType
|
||||
from synapse.api.errors import Codes
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import account, login, password_policy, register
|
||||
from synapse.server import HomeServer
|
||||
from synapse.util import Clock
|
||||
|
||||
from tests import unittest
|
||||
|
||||
|
@ -46,7 +51,7 @@ class PasswordPolicyTestCase(unittest.HomeserverTestCase):
|
|||
account.register_servlets,
|
||||
]
|
||||
|
||||
def make_homeserver(self, reactor, clock):
|
||||
def make_homeserver(self, reactor: MemoryReactor, clock: Clock) -> HomeServer:
|
||||
self.register_url = "/_matrix/client/r0/register"
|
||||
self.policy = {
|
||||
"enabled": True,
|
||||
|
@ -65,12 +70,12 @@ class PasswordPolicyTestCase(unittest.HomeserverTestCase):
|
|||
hs = self.setup_test_homeserver(config=config)
|
||||
return hs
|
||||
|
||||
def test_get_policy(self):
|
||||
def test_get_policy(self) -> None:
|
||||
"""Tests if the /password_policy endpoint returns the configured policy."""
|
||||
|
||||
channel = self.make_request("GET", "/_matrix/client/r0/password_policy")
|
||||
|
||||
self.assertEqual(channel.code, 200, channel.result)
|
||||
self.assertEqual(channel.code, HTTPStatus.OK, channel.result)
|
||||
self.assertEqual(
|
||||
channel.json_body,
|
||||
{
|
||||
|
@ -83,70 +88,70 @@ class PasswordPolicyTestCase(unittest.HomeserverTestCase):
|
|||
channel.result,
|
||||
)
|
||||
|
||||
def test_password_too_short(self):
|
||||
def test_password_too_short(self) -> None:
|
||||
request_data = json.dumps({"username": "kermit", "password": "shorty"})
|
||||
channel = self.make_request("POST", self.register_url, request_data)
|
||||
|
||||
self.assertEqual(channel.code, 400, channel.result)
|
||||
self.assertEqual(channel.code, HTTPStatus.BAD_REQUEST, channel.result)
|
||||
self.assertEqual(
|
||||
channel.json_body["errcode"],
|
||||
Codes.PASSWORD_TOO_SHORT,
|
||||
channel.result,
|
||||
)
|
||||
|
||||
def test_password_no_digit(self):
|
||||
def test_password_no_digit(self) -> None:
|
||||
request_data = json.dumps({"username": "kermit", "password": "longerpassword"})
|
||||
channel = self.make_request("POST", self.register_url, request_data)
|
||||
|
||||
self.assertEqual(channel.code, 400, channel.result)
|
||||
self.assertEqual(channel.code, HTTPStatus.BAD_REQUEST, channel.result)
|
||||
self.assertEqual(
|
||||
channel.json_body["errcode"],
|
||||
Codes.PASSWORD_NO_DIGIT,
|
||||
channel.result,
|
||||
)
|
||||
|
||||
def test_password_no_symbol(self):
|
||||
def test_password_no_symbol(self) -> None:
|
||||
request_data = json.dumps({"username": "kermit", "password": "l0ngerpassword"})
|
||||
channel = self.make_request("POST", self.register_url, request_data)
|
||||
|
||||
self.assertEqual(channel.code, 400, channel.result)
|
||||
self.assertEqual(channel.code, HTTPStatus.BAD_REQUEST, channel.result)
|
||||
self.assertEqual(
|
||||
channel.json_body["errcode"],
|
||||
Codes.PASSWORD_NO_SYMBOL,
|
||||
channel.result,
|
||||
)
|
||||
|
||||
def test_password_no_uppercase(self):
|
||||
def test_password_no_uppercase(self) -> None:
|
||||
request_data = json.dumps({"username": "kermit", "password": "l0ngerpassword!"})
|
||||
channel = self.make_request("POST", self.register_url, request_data)
|
||||
|
||||
self.assertEqual(channel.code, 400, channel.result)
|
||||
self.assertEqual(channel.code, HTTPStatus.BAD_REQUEST, channel.result)
|
||||
self.assertEqual(
|
||||
channel.json_body["errcode"],
|
||||
Codes.PASSWORD_NO_UPPERCASE,
|
||||
channel.result,
|
||||
)
|
||||
|
||||
def test_password_no_lowercase(self):
|
||||
def test_password_no_lowercase(self) -> None:
|
||||
request_data = json.dumps({"username": "kermit", "password": "L0NGERPASSWORD!"})
|
||||
channel = self.make_request("POST", self.register_url, request_data)
|
||||
|
||||
self.assertEqual(channel.code, 400, channel.result)
|
||||
self.assertEqual(channel.code, HTTPStatus.BAD_REQUEST, channel.result)
|
||||
self.assertEqual(
|
||||
channel.json_body["errcode"],
|
||||
Codes.PASSWORD_NO_LOWERCASE,
|
||||
channel.result,
|
||||
)
|
||||
|
||||
def test_password_compliant(self):
|
||||
def test_password_compliant(self) -> None:
|
||||
request_data = json.dumps({"username": "kermit", "password": "L0ngerpassword!"})
|
||||
channel = self.make_request("POST", self.register_url, request_data)
|
||||
|
||||
# Getting a 401 here means the password has passed validation and the server has
|
||||
# responded with a list of registration flows.
|
||||
self.assertEqual(channel.code, 401, channel.result)
|
||||
self.assertEqual(channel.code, HTTPStatus.UNAUTHORIZED, channel.result)
|
||||
|
||||
def test_password_change(self):
|
||||
def test_password_change(self) -> None:
|
||||
"""This doesn't test every possible use case, only that hitting /account/password
|
||||
triggers the password validation code.
|
||||
"""
|
||||
|
@ -173,5 +178,5 @@ class PasswordPolicyTestCase(unittest.HomeserverTestCase):
|
|||
access_token=tok,
|
||||
)
|
||||
|
||||
self.assertEqual(channel.code, 400, channel.result)
|
||||
self.assertEqual(channel.code, HTTPStatus.BAD_REQUEST, channel.result)
|
||||
self.assertEqual(channel.json_body["errcode"], Codes.PASSWORD_NO_DIGIT)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue