mirror of
https://github.com/element-hq/synapse.git
synced 2026-08-27 11:30:43 +00:00
Use LaxJsonDict in some tests
This commit is contained in:
committed by
Olivier 'reivilibre
parent
c0e78b1e44
commit
0127aee30a
@@ -25,7 +25,7 @@ from twisted.internet.testing import MemoryReactor
|
||||
|
||||
from synapse.appservice import ApplicationService
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, UserID
|
||||
from synapse.types import JsonDict, LaxJsonDict, UserID
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -81,7 +81,7 @@ class ApplicationServiceApiTestCase(unittest.HomeserverTestCase):
|
||||
url: str,
|
||||
args: Mapping[Any, Any],
|
||||
headers: Mapping[str | bytes, Sequence[str | bytes]],
|
||||
) -> list[JsonDict]:
|
||||
) -> list[LaxJsonDict]:
|
||||
# Ensure the access token is passed as a header.
|
||||
if not headers or not headers.get(b"Authorization"):
|
||||
raise RuntimeError("Access token not provided")
|
||||
@@ -155,7 +155,7 @@ class ApplicationServiceApiTestCase(unittest.HomeserverTestCase):
|
||||
url: str,
|
||||
args: Mapping[Any, Any],
|
||||
headers: Mapping[str | bytes, Sequence[str | bytes]] | None = None,
|
||||
) -> list[JsonDict]:
|
||||
) -> list[LaxJsonDict]:
|
||||
# Ensure the access token is passed as a both a query param and in the headers.
|
||||
if not args.get(b"access_token"):
|
||||
raise RuntimeError("Access token should be provided in query params.")
|
||||
|
||||
@@ -27,7 +27,7 @@ from unittest.mock import Mock
|
||||
from synapse.config import ConfigError
|
||||
from synapse.config.homeserver import HomeServerConfig
|
||||
from synapse.module_api import ModuleApi
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
|
||||
from tests.server import get_clock, setup_test_homeserver
|
||||
from tests.unittest import TestCase, skip_unless
|
||||
@@ -58,7 +58,7 @@ class MasAuthDelegation(TestCase):
|
||||
"""Test that the Homeserver fails to initialize if the config is invalid."""
|
||||
|
||||
def setUp(self) -> None:
|
||||
self.config_dict: JsonDict = {
|
||||
self.config_dict: LaxJsonDict = {
|
||||
**default_config(server_name="test"),
|
||||
"public_baseurl": BASE_URL,
|
||||
"enable_registration": False,
|
||||
|
||||
@@ -48,7 +48,7 @@ from synapse.logging.context import (
|
||||
)
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage.keys import FetchKeyResult
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -64,7 +64,7 @@ class MockPerspectiveServer:
|
||||
vk = signedjson.key.get_verify_key(self.key)
|
||||
return {"%s:%s" % (vk.alg, vk.version): encode_verify_key_base64(vk)}
|
||||
|
||||
def get_signed_key(self, server_name: str, verify_key: VerifyKey) -> JsonDict:
|
||||
def get_signed_key(self, server_name: str, verify_key: VerifyKey) -> LaxJsonDict:
|
||||
key_id = "%s:%s" % (verify_key.alg, verify_key.version)
|
||||
res = {
|
||||
"server_name": server_name,
|
||||
@@ -75,7 +75,7 @@ class MockPerspectiveServer:
|
||||
self.sign_response(res)
|
||||
return res
|
||||
|
||||
def sign_response(self, res: JsonDict) -> None:
|
||||
def sign_response(self, res: LaxJsonDict) -> None:
|
||||
signedjson.sign.sign_json(res, self.server_name, self.key)
|
||||
|
||||
|
||||
@@ -476,7 +476,7 @@ class ServerKeyFetcherTestCase(unittest.HomeserverTestCase):
|
||||
}
|
||||
signedjson.sign.sign_json(response, SERVER_NAME, testkey)
|
||||
|
||||
async def get_json(destination: str, path: str, **kwargs: Any) -> JsonDict:
|
||||
async def get_json(destination: str, path: str, **kwargs: Any) -> LaxJsonDict:
|
||||
self.assertEqual(destination, SERVER_NAME)
|
||||
self.assertEqual(path, "/_matrix/key/v2/server")
|
||||
return response
|
||||
@@ -565,7 +565,7 @@ class PerspectivesKeyFetcherTestCase(unittest.HomeserverTestCase):
|
||||
"""
|
||||
|
||||
async def post_json(
|
||||
destination: str, path: str, data: JsonDict, **kwargs: Any
|
||||
destination: str, path: str, data: LaxJsonDict, **kwargs: Any
|
||||
) -> JsonDict:
|
||||
self.assertEqual(destination, self.mock_perspective_server.server_name)
|
||||
self.assertEqual(path, "/_matrix/key/v2/query")
|
||||
@@ -648,7 +648,7 @@ class PerspectivesKeyFetcherTestCase(unittest.HomeserverTestCase):
|
||||
)
|
||||
|
||||
async def post_json(
|
||||
destination: str, path: str, data: JsonDict, **kwargs: str
|
||||
destination: str, path: str, data: LaxJsonDict, **kwargs: str
|
||||
) -> JsonDict:
|
||||
self.assertEqual(destination, self.mock_perspective_server.server_name)
|
||||
self.assertEqual(path, "/_matrix/key/v2/query")
|
||||
|
||||
@@ -37,7 +37,7 @@ from synapse.events.utils import (
|
||||
maybe_upsert_event_field,
|
||||
prune_event,
|
||||
)
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.frozenutils import freeze
|
||||
|
||||
from tests.test_utils.event_builders import make_test_event
|
||||
@@ -92,7 +92,9 @@ class PruneEventTestCase(stdlib_unittest.TestCase):
|
||||
"prev_events": [],
|
||||
}
|
||||
|
||||
def run_test(self, evdict: JsonDict, matchdict: JsonDict, **kwargs: Any) -> None:
|
||||
def run_test(
|
||||
self, evdict: LaxJsonDict, matchdict: LaxJsonDict, **kwargs: Any
|
||||
) -> None:
|
||||
"""
|
||||
Asserts that a new event constructed with `evdict` will look like
|
||||
`matchdict` when it is redacted.
|
||||
|
||||
@@ -28,7 +28,7 @@ from synapse.events.utils import strip_event
|
||||
from synapse.federation.transport.client import SendJoinResponse
|
||||
from synapse.http.matrixfederationclient import ByteParser
|
||||
from synapse.http.types import QueryParams
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
|
||||
from tests.test_utils.event_builders import make_test_event, make_test_pdu_event
|
||||
from tests.unittest import FederatingHomeserverTestCase
|
||||
@@ -307,7 +307,7 @@ class RemoteJoinHelper:
|
||||
destination: str,
|
||||
path: str,
|
||||
args: QueryParams | None = None,
|
||||
data: JsonDict | None = None,
|
||||
data: LaxJsonDict | None = None,
|
||||
json_data_callback: Callable[[], JsonDict] | None = None,
|
||||
long_retries: bool = False,
|
||||
timeout: int | None = None,
|
||||
|
||||
@@ -15,7 +15,7 @@ from synapse.federation.units import Edu, Transaction
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import login, room
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.retryutils import NotRetryingDestination
|
||||
|
||||
@@ -55,8 +55,8 @@ class FederationCatchUpTestCases(FederatingHomeserverTestCase):
|
||||
)
|
||||
|
||||
# whenever send_transaction is called, record the pdu data
|
||||
self.pdus: list[JsonDict] = []
|
||||
self.failed_pdus: list[JsonDict] = []
|
||||
self.pdus: list[LaxJsonDict] = []
|
||||
self.failed_pdus: list[LaxJsonDict] = []
|
||||
self.is_online = True
|
||||
self.federation_transport_client.send_transaction.side_effect = (
|
||||
self.record_transaction
|
||||
@@ -72,7 +72,7 @@ class FederationCatchUpTestCases(FederatingHomeserverTestCase):
|
||||
return config
|
||||
|
||||
async def record_transaction(
|
||||
self, txn: Transaction, json_cb: Callable[[], JsonDict] | None
|
||||
self, txn: Transaction, json_cb: Callable[[], LaxJsonDict] | None
|
||||
) -> JsonDict:
|
||||
if json_cb is None:
|
||||
# The tests seem to expect that this method raises in this situation.
|
||||
|
||||
@@ -43,7 +43,7 @@ from synapse.http.types import QueryParams
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import login, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, MutableStateMap, StateMap
|
||||
from synapse.types import JsonDict, LaxJsonDict, MutableStateMap, StateMap
|
||||
from synapse.types.handlers.sliding_sync import (
|
||||
StateValues,
|
||||
)
|
||||
@@ -142,8 +142,8 @@ class OutOfBandMembershipTests(unittest.FederatingHomeserverTestCase):
|
||||
self.storage_controllers = hs.get_storage_controllers()
|
||||
|
||||
def do_sync(
|
||||
self, sync_body: JsonDict, *, since: str | None = None, tok: str
|
||||
) -> tuple[JsonDict, str]:
|
||||
self, sync_body: LaxJsonDict, *, since: str | None = None, tok: str
|
||||
) -> tuple[LaxJsonDict, str]:
|
||||
"""Do a sliding sync request with given body.
|
||||
|
||||
Asserts the request was successful.
|
||||
@@ -349,7 +349,7 @@ class OutOfBandMembershipTests(unittest.FederatingHomeserverTestCase):
|
||||
destination: str,
|
||||
path: str,
|
||||
args: QueryParams | None = None,
|
||||
data: JsonDict | None = None,
|
||||
data: LaxJsonDict | None = None,
|
||||
json_data_callback: Callable[[], JsonDict] | None = None,
|
||||
long_retries: bool = False,
|
||||
timeout: int | None = None,
|
||||
@@ -502,7 +502,7 @@ class OutOfBandMembershipTests(unittest.FederatingHomeserverTestCase):
|
||||
destination: str,
|
||||
path: str,
|
||||
args: QueryParams | None = None,
|
||||
data: JsonDict | None = None,
|
||||
data: LaxJsonDict | None = None,
|
||||
json_data_callback: Callable[[], JsonDict] | None = None,
|
||||
long_retries: bool = False,
|
||||
timeout: int | None = None,
|
||||
|
||||
@@ -35,7 +35,7 @@ from synapse.rest import admin
|
||||
from synapse.rest.client import login
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage.databases.main.events_worker import EventMetadata
|
||||
from synapse.types import JsonDict, ReadReceipt
|
||||
from synapse.types import JsonDict, LaxJsonDict, ReadReceipt
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.duration import Duration
|
||||
|
||||
@@ -505,13 +505,13 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
|
||||
self.device_handler = device_handler
|
||||
|
||||
# whenever send_transaction is called, record the edu data
|
||||
self.edus: list[JsonDict] = []
|
||||
self.edus: list[LaxJsonDict] = []
|
||||
self.federation_transport_client.send_transaction.side_effect = (
|
||||
self.record_transaction
|
||||
)
|
||||
|
||||
async def record_transaction(
|
||||
self, txn: Transaction, json_cb: Callable[[], JsonDict] | None = None
|
||||
self, txn: Transaction, json_cb: Callable[[], LaxJsonDict] | None = None
|
||||
) -> JsonDict:
|
||||
assert json_cb is not None
|
||||
data = json_cb()
|
||||
@@ -885,7 +885,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
|
||||
|
||||
def check_device_update_edu(
|
||||
self,
|
||||
edu: JsonDict,
|
||||
edu: LaxJsonDict,
|
||||
user_id: str,
|
||||
device_id: str,
|
||||
prev_stream_id: int | None,
|
||||
@@ -909,7 +909,7 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
|
||||
|
||||
def check_signing_key_update_txn(
|
||||
self,
|
||||
txn: JsonDict,
|
||||
txn: LaxJsonDict,
|
||||
) -> None:
|
||||
"""Check that the txn has an EDU with a signing key update."""
|
||||
edus = txn["edus"]
|
||||
|
||||
@@ -38,7 +38,7 @@ from synapse.rest import admin
|
||||
from synapse.rest.client import login, room
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage.controllers.state import server_acl_evaluator_from_event
|
||||
from synapse.types import JsonDict, UserID
|
||||
from synapse.types import JsonDict, LaxJsonDict, UserID
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -135,7 +135,7 @@ class GetMissingEventsRoomCheckTests(unittest.FederatingHomeserverTestCase):
|
||||
self.room_blocked, num_events=5, tok=self.local_user_token
|
||||
)
|
||||
|
||||
def _extract_returned_event_ids(self, json_body: JsonDict) -> set[str]:
|
||||
def _extract_returned_event_ids(self, json_body: LaxJsonDict) -> set[str]:
|
||||
"""
|
||||
Given the response body of `/get_missing_events`, return the event IDs
|
||||
of the events that were returned in the response.
|
||||
@@ -951,7 +951,7 @@ class SendJoinFederationTests(unittest.FederatingHomeserverTestCase):
|
||||
tok2 = self.login("fozzie", "bear")
|
||||
self.helper.join(self._room_id, second_member_user_id, tok=tok2)
|
||||
|
||||
def _make_join(self, user_id: str) -> JsonDict:
|
||||
def _make_join(self, user_id: str) -> LaxJsonDict:
|
||||
channel = self.make_signed_federation_request(
|
||||
"GET",
|
||||
f"/_matrix/federation/v1/make_join/{self._room_id}/{user_id}"
|
||||
|
||||
@@ -34,7 +34,7 @@ from synapse.appservice import ApplicationService
|
||||
from synapse.handlers.device import DeviceWriterHandler
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage.databases.main.appservice import _make_exclusive_regex
|
||||
from synapse.types import JsonDict, UserID
|
||||
from synapse.types import JsonDict, LaxJsonDict, UserID
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -61,7 +61,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||
"""we should be able to re-upload the same keys"""
|
||||
local_user = "@boris:" + self.hs.hostname
|
||||
device_id = "xyz"
|
||||
keys: JsonDict = {
|
||||
keys: LaxJsonDict = {
|
||||
"alg1:k1": "key1",
|
||||
"alg2:k2": {"key": "key2", "signatures": {"k1": "sig1"}},
|
||||
"alg2:k3": {"key": "key3"},
|
||||
@@ -747,7 +747,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||
self.get_success(self.handler.upload_signing_keys_for_user(local_user, keys1))
|
||||
|
||||
# upload two device keys, which will be signed later by the self-signing key
|
||||
device_key_1: JsonDict = {
|
||||
device_key_1: LaxJsonDict = {
|
||||
"user_id": local_user,
|
||||
"device_id": "abc",
|
||||
"algorithms": [
|
||||
@@ -760,7 +760,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||
},
|
||||
"signatures": {local_user: {"ed25519:abc": "base64+signature"}},
|
||||
}
|
||||
device_key_2: JsonDict = {
|
||||
device_key_2: LaxJsonDict = {
|
||||
"user_id": local_user,
|
||||
"device_id": "def",
|
||||
"algorithms": [
|
||||
@@ -858,7 +858,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||
device_id = "xyz"
|
||||
# private key: OMkooTr76ega06xNvXIGPbgvvxAOzmQncN8VObS7aBA
|
||||
device_pubkey = "NnHhnqiMFQkq969szYkooLaBAXW244ZOxgukCvm2ZeY"
|
||||
device_key: JsonDict = {
|
||||
device_key: LaxJsonDict = {
|
||||
"user_id": local_user,
|
||||
"device_id": device_id,
|
||||
"algorithms": [
|
||||
@@ -880,7 +880,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
# private key: 2lonYOM6xYKdEsO+6KrC766xBcHnYnim1x/4LFGF8B0
|
||||
master_pubkey = "nqOvzeuGWT/sRx3h7+MHoInYj3Uk2LD/unI9kDYcHwk"
|
||||
master_key: JsonDict = {
|
||||
master_key: LaxJsonDict = {
|
||||
"user_id": local_user,
|
||||
"usage": ["master"],
|
||||
"keys": {"ed25519:" + master_pubkey: master_pubkey},
|
||||
@@ -923,7 +923,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||
# the first user
|
||||
other_user = "@otherboris:" + self.hs.hostname
|
||||
other_master_pubkey = "fHZ3NPiKxoLQm5OoZbKa99SYxprOjNs4TwJUKP+twCM"
|
||||
other_master_key: JsonDict = {
|
||||
other_master_key: LaxJsonDict = {
|
||||
# private key: oyw2ZUx0O4GifbfFYM0nQvj9CL0b8B7cyN4FprtK8OI
|
||||
"user_id": other_user,
|
||||
"usage": ["master"],
|
||||
@@ -1510,7 +1510,7 @@ class E2eKeysHandlerTestCase(unittest.HomeserverTestCase):
|
||||
)
|
||||
|
||||
# Setup a response.
|
||||
response: dict[str, dict[str, dict[str, JsonDict]]] = {
|
||||
response: dict[str, dict[str, dict[str, LaxJsonDict]]] = {
|
||||
local_user: {device_id_1: {**as_otk, **as_fallback_key}}
|
||||
}
|
||||
self.appservice_api.claim_client_keys.return_value = (response, [])
|
||||
|
||||
@@ -34,7 +34,7 @@ from synapse.handlers.account import AccountHandler
|
||||
from synapse.module_api import ModuleApi
|
||||
from synapse.rest.client import account, devices, login, logout, register
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, UserID
|
||||
from synapse.types import JsonDict, LaxJsonDict, UserID
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -895,7 +895,7 @@ class PasswordAuthProviderTests(unittest.HomeserverTestCase):
|
||||
client is trying to register.
|
||||
"""
|
||||
|
||||
async def callback(uia_results: JsonDict, params: JsonDict) -> str:
|
||||
async def callback(uia_results: JsonDict, params: LaxJsonDict) -> str:
|
||||
self.assertIn(LoginType.DUMMY, uia_results)
|
||||
username = params["username"]
|
||||
return username + "-foo"
|
||||
@@ -907,7 +907,7 @@ class PasswordAuthProviderTests(unittest.HomeserverTestCase):
|
||||
|
||||
return m
|
||||
|
||||
def _do_uia_assert_mock_not_called(self, username: str, m: Mock) -> JsonDict:
|
||||
def _do_uia_assert_mock_not_called(self, username: str, m: Mock) -> LaxJsonDict:
|
||||
# Initiate the UIA flow.
|
||||
channel = self.make_request(
|
||||
"POST",
|
||||
@@ -978,7 +978,7 @@ class PasswordAuthProviderTests(unittest.HomeserverTestCase):
|
||||
self,
|
||||
access_token: str,
|
||||
device: str,
|
||||
body: JsonDict | bytes = b"",
|
||||
body: LaxJsonDict | bytes = b"",
|
||||
) -> FakeChannel:
|
||||
"""Delete an individual device."""
|
||||
channel = self.make_request(
|
||||
|
||||
@@ -25,7 +25,7 @@ from twisted.internet.testing import MemoryReactor
|
||||
|
||||
from synapse.api.constants import EduTypes, ReceiptTypes
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -333,7 +333,7 @@ class ReceiptsTestCase(unittest.HomeserverTestCase):
|
||||
self.assertEqual(events, original_events)
|
||||
|
||||
def _test_filters_private(
|
||||
self, events: list[JsonDict], expected_output: list[JsonDict]
|
||||
self, events: list[LaxJsonDict], expected_output: list[JsonDict]
|
||||
) -> None:
|
||||
"""Tests that the _filter_out_private returns the expected output"""
|
||||
filtered_events = self.event_source.filter_out_private_receipts(
|
||||
|
||||
@@ -2,7 +2,7 @@ from http import HTTPStatus
|
||||
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import directory, login, room
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
|
||||
from tests import unittest
|
||||
from tests.utils import default_config
|
||||
@@ -30,7 +30,7 @@ class RoomListHandlerTestCase(unittest.HomeserverTestCase):
|
||||
assert channel.code == HTTPStatus.OK, f"couldn't publish room: {channel.result}"
|
||||
return room_id
|
||||
|
||||
def default_config(self) -> JsonDict:
|
||||
def default_config(self) -> LaxJsonDict:
|
||||
config = default_config(server_name="test")
|
||||
config["room_list_publication_rules"] = [{"action": "allow"}]
|
||||
return config
|
||||
|
||||
@@ -32,7 +32,7 @@ from synapse.handlers.room_policy import POLICY_SERVER_KEY_ID
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import filter, login, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, UserID
|
||||
from synapse.types import JsonDict, LaxJsonDict, UserID
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -130,7 +130,7 @@ class RoomPolicyTestCase(unittest.FederatingHomeserverTestCase):
|
||||
|
||||
async def policy_server_signs_event_with_wrong_key(
|
||||
destination: str, pdu: EventBase, timeout: int | None = None
|
||||
) -> JsonDict | None:
|
||||
) -> LaxJsonDict | None:
|
||||
sk = signedjson.key.generate_signing_key("policy_server")
|
||||
sigs = compute_event_signature(
|
||||
pdu.room_version,
|
||||
@@ -526,7 +526,7 @@ class RoomPolicyTestCase(unittest.FederatingHomeserverTestCase):
|
||||
f"event did not include policy server signature, signature block = {ev.get('signatures', None)}",
|
||||
)
|
||||
|
||||
def _fetch_federation_event(self, event_id: str) -> JsonDict | None:
|
||||
def _fetch_federation_event(self, event_id: str) -> LaxJsonDict | None:
|
||||
# Request federation events to see the signatures
|
||||
channel = self.make_request(
|
||||
"POST",
|
||||
|
||||
@@ -40,7 +40,7 @@ from synapse.handlers.room_summary import _child_events_comparison_key, _RoomEnt
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import login, room
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, UserID, create_requester
|
||||
from synapse.types import JsonDict, LaxJsonDict, UserID, create_requester
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -170,7 +170,9 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
|
||||
)
|
||||
|
||||
def _assert_hierarchy(
|
||||
self, result: JsonDict, rooms_and_children: Iterable[tuple[str, Iterable[str]]]
|
||||
self,
|
||||
result: LaxJsonDict,
|
||||
rooms_and_children: Iterable[tuple[str, Iterable[str]]],
|
||||
) -> None:
|
||||
"""
|
||||
Assert that the expected room IDs are in the response.
|
||||
@@ -740,7 +742,7 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
async def summarize_remote_room_hierarchy(
|
||||
_self: Any, room: Any, suggested_only: bool
|
||||
) -> tuple[_RoomEntry | None, dict[str, JsonDict], set[str]]:
|
||||
) -> tuple[_RoomEntry | None, dict[str, LaxJsonDict], set[str]]:
|
||||
return requested_room_entry, {subroom: child_room}, set()
|
||||
|
||||
# Add a room to the space which is on another server.
|
||||
@@ -793,7 +795,7 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
async def summarize_remote_room_hierarchy(
|
||||
_self: Any, room: Any, suggested_only: bool
|
||||
) -> tuple[_RoomEntry | None, dict[str, JsonDict], set[str]]:
|
||||
) -> tuple[_RoomEntry | None, dict[str, LaxJsonDict], set[str]]:
|
||||
return requested_room_entry, {fed_subroom: child_room}, set()
|
||||
|
||||
expected = [
|
||||
@@ -921,7 +923,7 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
async def summarize_remote_room_hierarchy(
|
||||
_self: Any, room: Any, suggested_only: bool
|
||||
) -> tuple[_RoomEntry | None, dict[str, JsonDict], set[str]]:
|
||||
) -> tuple[_RoomEntry | None, dict[str, LaxJsonDict], set[str]]:
|
||||
return subspace_room_entry, dict(children_rooms), set()
|
||||
|
||||
# Add a room to the space which is on another server.
|
||||
@@ -1120,7 +1122,7 @@ class SpaceSummaryTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
async def summarize_remote_room_hierarchy(
|
||||
_self: Any, room: Any, suggested_only: bool
|
||||
) -> tuple[_RoomEntry | None, dict[str, JsonDict], set[str]]:
|
||||
) -> tuple[_RoomEntry | None, dict[str, LaxJsonDict], set[str]]:
|
||||
return requested_room_entry, {fed_subroom: child_room}, set()
|
||||
|
||||
expected = [
|
||||
|
||||
@@ -43,8 +43,8 @@ from synapse.rest import admin
|
||||
from synapse.rest.client import knock, login, room
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import (
|
||||
JsonDict,
|
||||
JsonValue,
|
||||
LaxJsonDict,
|
||||
MultiWriterStreamToken,
|
||||
RoomStreamToken,
|
||||
StreamKeyType,
|
||||
@@ -837,7 +837,7 @@ class SyncTestCase(tests.unittest.HomeserverTestCase):
|
||||
]
|
||||
|
||||
# And now, Bob resyncs.
|
||||
filter_dict: JsonDict = {"room": {"include_leave": True}}
|
||||
filter_dict: LaxJsonDict = {"room": {"include_leave": True}}
|
||||
if empty_timeline:
|
||||
filter_dict["room"]["timeline"] = {"limit": 0}
|
||||
sync_room_result = self.get_success(
|
||||
|
||||
@@ -48,7 +48,7 @@ from synapse.logging.context import (
|
||||
LoggingContext,
|
||||
make_deferred_yieldable,
|
||||
)
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
|
||||
from tests.server import FakeChannel, make_request
|
||||
from tests.unittest import logcontext_clean
|
||||
@@ -144,7 +144,7 @@ def make_request_with_cancellation_test(
|
||||
site: Site,
|
||||
method: str,
|
||||
path: str,
|
||||
content: bytes | str | JsonDict = b"",
|
||||
content: bytes | str | LaxJsonDict = b"",
|
||||
*,
|
||||
token: str | None = None,
|
||||
) -> FakeChannel:
|
||||
|
||||
@@ -32,7 +32,7 @@ from synapse.http.servlet import (
|
||||
from synapse.http.site import SynapseRequest
|
||||
from synapse.rest.client._base import client_patterns
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.cancellation import cancellable
|
||||
from synapse.util.duration import Duration
|
||||
|
||||
@@ -40,7 +40,7 @@ from tests import unittest
|
||||
from tests.http.server._base import disconnect_and_assert
|
||||
|
||||
|
||||
def make_request(content: bytes | JsonDict) -> Mock:
|
||||
def make_request(content: bytes | LaxJsonDict) -> Mock:
|
||||
"""Make an object that acts enough like a request."""
|
||||
request = Mock(spec=["method", "uri", "content"])
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ from synapse.logging._terse_json import (
|
||||
TerseJsonFormatter,
|
||||
)
|
||||
from synapse.logging.context import LoggingContext, LoggingContextFilter
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import LaxJsonDict
|
||||
|
||||
from tests.logging import LoggerCleanupMixin
|
||||
from tests.server import FakeChannel, get_clock
|
||||
@@ -46,7 +46,7 @@ class TerseJsonTestCase(LoggerCleanupMixin, TestCase):
|
||||
self.output = StringIO()
|
||||
self.reactor, _ = get_clock()
|
||||
|
||||
def get_log_line(self) -> JsonDict:
|
||||
def get_log_line(self) -> LaxJsonDict:
|
||||
# One log message, with a single trailing newline.
|
||||
data = self.output.getvalue()
|
||||
logs = data.splitlines()
|
||||
@@ -261,7 +261,7 @@ class GcpJsonFormatterTestCase(LoggerCleanupMixin, TestCase):
|
||||
def setUp(self) -> None:
|
||||
self.output = StringIO()
|
||||
|
||||
def get_log_line(self) -> JsonDict:
|
||||
def get_log_line(self) -> LaxJsonDict:
|
||||
data = self.output.getvalue()
|
||||
logs = data.splitlines()
|
||||
self.assertEqual(len(logs), 1)
|
||||
|
||||
@@ -29,7 +29,7 @@ from synapse.module_api.callbacks.federation import (
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import login, room
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -314,7 +314,7 @@ class FederationDeliveryCallbackTests(unittest.FederatingHomeserverTestCase):
|
||||
|
||||
async def _acknowledge_pdus(
|
||||
transaction: Transaction,
|
||||
json_data_cb: Callable[[], JsonDict],
|
||||
json_data_cb: Callable[[], LaxJsonDict],
|
||||
) -> JsonDict:
|
||||
"""
|
||||
Acknowledge the PDUs.
|
||||
@@ -352,7 +352,7 @@ class FederationDeliveryCallbackTests(unittest.FederatingHomeserverTestCase):
|
||||
|
||||
async def _error_pdus(
|
||||
transaction: Transaction,
|
||||
json_data_cb: Callable[[], JsonDict],
|
||||
json_data_cb: Callable[[], LaxJsonDict],
|
||||
) -> JsonDict:
|
||||
"""
|
||||
Return an error for the PDUs.
|
||||
|
||||
@@ -28,7 +28,7 @@ from synapse.events import make_event_from_dict
|
||||
from synapse.module_api import EventBase
|
||||
from synapse.rest import admin, login, room, room_upgrade_rest_servlet
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import Codes, JsonDict
|
||||
from synapse.types import Codes, JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -53,7 +53,7 @@ class SpamCheckerTestCase(HomeserverTestCase):
|
||||
self.user_id = self.register_user("user", "password")
|
||||
self.token = self.login("user", "password")
|
||||
|
||||
def create_room(self, content: JsonDict) -> FakeChannel:
|
||||
def create_room(self, content: LaxJsonDict) -> FakeChannel:
|
||||
channel = self.make_request(
|
||||
"POST",
|
||||
"/_matrix/client/r0/createRoom",
|
||||
@@ -69,7 +69,7 @@ class SpamCheckerTestCase(HomeserverTestCase):
|
||||
"""
|
||||
|
||||
async def user_may_create_room(
|
||||
user_id: str, room_config: JsonDict
|
||||
user_id: str, room_config: LaxJsonDict
|
||||
) -> Literal["NOT_SPAM"] | Codes:
|
||||
self.last_room_config = room_config
|
||||
self.last_user_id = user_id
|
||||
|
||||
@@ -34,7 +34,7 @@ from synapse.rest.client import login, register, room
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage.databases.main.appservice import _make_exclusive_regex
|
||||
from synapse.synapse_rust.push import PushRuleEvaluator
|
||||
from synapse.types import JsonDict, JsonMapping, UserID
|
||||
from synapse.types import JsonDict, JsonMapping, LaxJsonDict, UserID
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.frozenutils import freeze
|
||||
|
||||
@@ -160,7 +160,7 @@ class PushRuleEvaluatorTestCase(unittest.TestCase):
|
||||
self,
|
||||
content: JsonMapping,
|
||||
*,
|
||||
related_events: JsonDict | None = None,
|
||||
related_events: LaxJsonDict | None = None,
|
||||
msc4210: bool = False,
|
||||
msc4306: bool = False,
|
||||
) -> PushRuleEvaluator:
|
||||
@@ -217,13 +217,13 @@ class PushRuleEvaluatorTestCase(unittest.TestCase):
|
||||
self.assertTrue(evaluator.matches(condition, "@user:test", "foo bar"))
|
||||
|
||||
def _assert_matches(
|
||||
self, condition: JsonDict, content: JsonMapping, msg: str | None = None
|
||||
self, condition: LaxJsonDict, content: JsonMapping, msg: str | None = None
|
||||
) -> None:
|
||||
evaluator = self._get_evaluator(content)
|
||||
self.assertTrue(evaluator.matches(condition, "@user:test", "display_name"), msg)
|
||||
|
||||
def _assert_not_matches(
|
||||
self, condition: JsonDict, content: JsonDict, msg: str | None = None
|
||||
self, condition: LaxJsonDict, content: JsonDict, msg: str | None = None
|
||||
) -> None:
|
||||
evaluator = self._get_evaluator(content)
|
||||
self.assertFalse(
|
||||
|
||||
@@ -27,7 +27,7 @@ from synapse.api.errors import Codes
|
||||
from synapse.rest.client import login, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage.roommember import RoomsForUser
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.stringutils import random_string
|
||||
|
||||
@@ -729,7 +729,7 @@ class ServerNoticeTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
return invited_rooms
|
||||
|
||||
def _sync_and_get_messages(self, room_id: str, token: str) -> list[JsonDict]:
|
||||
def _sync_and_get_messages(self, room_id: str, token: str) -> list[LaxJsonDict]:
|
||||
"""
|
||||
Do a sync and get messages of a room.
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ from synapse.rest.client import (
|
||||
)
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage.databases.main.client_ips import LAST_SEEN_GRANULARITY
|
||||
from synapse.types import JsonDict, UserID, create_requester
|
||||
from synapse.types import JsonDict, LaxJsonDict, UserID, create_requester
|
||||
from synapse.util.clock import CLOCK_SCHEDULE_EPSILON, Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -1519,7 +1519,7 @@ class UserDevicesTestCase(unittest.HomeserverTestCase):
|
||||
# Check that all the attributes of the device reported are as expected.
|
||||
self._validate_attributes_of_device_response(channel.json_body)
|
||||
|
||||
def _validate_attributes_of_device_response(self, response: JsonDict) -> None:
|
||||
def _validate_attributes_of_device_response(self, response: LaxJsonDict) -> None:
|
||||
# Check that all device expected attributes are present
|
||||
self.assertEqual(response["user_id"], self.other_user_id)
|
||||
self.assertEqual(response["device_id"], self.other_user_device_id)
|
||||
|
||||
@@ -21,7 +21,7 @@ import synapse.rest.client.account_data
|
||||
from synapse.api.constants import EventTypes, EventUnsignedContentFields
|
||||
from synapse.rest.client import account_data, login, register, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, StreamKeyType
|
||||
from synapse.types import JsonDict, LaxJsonDict, StreamKeyType
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.duration import Duration
|
||||
|
||||
@@ -88,7 +88,7 @@ class SlidingSyncStickyEventsExtensionTestCase(SlidingSyncBase):
|
||||
|
||||
def _assert_sticky_events_response(
|
||||
self,
|
||||
response_body: JsonDict,
|
||||
response_body: LaxJsonDict,
|
||||
expected_events_by_room: dict[str, list[str]] | None,
|
||||
) -> str | None:
|
||||
"""Assert the sliding sync response was successful and has the expected
|
||||
@@ -182,7 +182,7 @@ class SlidingSyncStickyEventsExtensionTestCase(SlidingSyncBase):
|
||||
)["event_id"]
|
||||
|
||||
# Initial sync should return the sticky event
|
||||
sync_body: JsonDict = {
|
||||
sync_body: LaxJsonDict = {
|
||||
"lists": DUMMY_LISTS,
|
||||
"extensions": {
|
||||
"org.matrix.msc4354.sticky_events": {
|
||||
|
||||
@@ -20,7 +20,7 @@ from twisted.internet.testing import MemoryReactor
|
||||
import synapse.rest.admin
|
||||
from synapse.rest.client import login, sendtodevice, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, StreamKeyType
|
||||
from synapse.types import JsonDict, LaxJsonDict, StreamKeyType
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests.rest.client.sliding_sync.test_sliding_sync import SlidingSyncBase
|
||||
@@ -58,7 +58,7 @@ class SlidingSyncToDeviceExtensionTestCase(SlidingSyncBase):
|
||||
super().prepare(reactor, clock, hs)
|
||||
|
||||
def _assert_to_device_response(
|
||||
self, response_body: JsonDict, expected_messages: list[JsonDict]
|
||||
self, response_body: LaxJsonDict, expected_messages: list[JsonDict]
|
||||
) -> str:
|
||||
"""Assert the sliding sync response was successful and has the expected
|
||||
to-device messages.
|
||||
|
||||
@@ -27,7 +27,7 @@ from synapse.api.room_versions import RoomVersions
|
||||
from synapse.events import StrippedStateEvent
|
||||
from synapse.rest.client import login, room, sync, tags
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests.rest.client.sliding_sync.test_sliding_sync import SlidingSyncBase
|
||||
@@ -1320,7 +1320,7 @@ class SlidingSyncFiltersTestCase(SlidingSyncBase):
|
||||
user1_tok = self.login(user1_id, "pass")
|
||||
|
||||
# Get a token before we create any rooms
|
||||
sync_body: JsonDict = {
|
||||
sync_body: LaxJsonDict = {
|
||||
"lists": {},
|
||||
}
|
||||
response_body, before_rooms_token = self.do_sync(sync_body, tok=user1_tok)
|
||||
@@ -1402,7 +1402,7 @@ class SlidingSyncFiltersTestCase(SlidingSyncBase):
|
||||
_user2_tok = self.login(user2_id, "pass")
|
||||
|
||||
# Get a token before we create any rooms
|
||||
sync_body: JsonDict = {
|
||||
sync_body: LaxJsonDict = {
|
||||
"lists": {},
|
||||
}
|
||||
response_body, before_rooms_token = self.do_sync(sync_body, tok=user1_tok)
|
||||
|
||||
@@ -22,7 +22,7 @@ import synapse.rest.admin
|
||||
from synapse.api.constants import EventTypes, HistoryVisibility
|
||||
from synapse.rest.client import login, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests.rest.client.sliding_sync.test_sliding_sync import SlidingSyncBase
|
||||
@@ -196,7 +196,7 @@ class SlidingSyncRoomSubscriptionsTestCase(SlidingSyncBase):
|
||||
user1_id, tok=user1_tok, extra_content={"name": "Foo"}
|
||||
)
|
||||
|
||||
sync_body: JsonDict = {
|
||||
sync_body: LaxJsonDict = {
|
||||
"room_subscriptions": {
|
||||
room_id1: {
|
||||
"required_state": [
|
||||
|
||||
@@ -37,7 +37,7 @@ from synapse.handlers.sliding_sync import StateValues
|
||||
from synapse.rest.client import account_data, devices, login, receipts, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import (
|
||||
JsonDict,
|
||||
LaxJsonDict,
|
||||
RoomStreamToken,
|
||||
SlidingSyncStreamToken,
|
||||
StreamKeyType,
|
||||
@@ -77,7 +77,7 @@ class SlidingSyncBase(unittest.HomeserverTestCase):
|
||||
return_value=self.use_new_tables
|
||||
)
|
||||
|
||||
def default_config(self) -> JsonDict:
|
||||
def default_config(self) -> LaxJsonDict:
|
||||
config = super().default_config()
|
||||
# Enable sliding sync
|
||||
config["experimental_features"] = {"msc3575_enabled": True}
|
||||
@@ -85,7 +85,7 @@ class SlidingSyncBase(unittest.HomeserverTestCase):
|
||||
|
||||
def make_sync_request(
|
||||
self,
|
||||
sync_body: JsonDict,
|
||||
sync_body: LaxJsonDict,
|
||||
*,
|
||||
since: str | None = None,
|
||||
tok: str,
|
||||
@@ -127,12 +127,12 @@ class SlidingSyncBase(unittest.HomeserverTestCase):
|
||||
|
||||
def do_sync(
|
||||
self,
|
||||
sync_body: JsonDict,
|
||||
sync_body: LaxJsonDict,
|
||||
*,
|
||||
since: str | None = None,
|
||||
tok: str,
|
||||
timeout: Duration | None = None,
|
||||
) -> tuple[JsonDict, str]:
|
||||
) -> tuple[LaxJsonDict, str]:
|
||||
"""Do a sliding sync request with given body.
|
||||
|
||||
Asserts the request was successful.
|
||||
|
||||
@@ -25,7 +25,7 @@ from synapse.rest import admin
|
||||
from synapse.rest.client import delayed_events, login, room, sync, versions
|
||||
from synapse.server import HomeServer
|
||||
from synapse.synapse_rust.http_client import HttpClient
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.duration import Duration
|
||||
|
||||
@@ -686,7 +686,7 @@ class DelayedEventsTestCase(HomeserverTestCase):
|
||||
|
||||
return events
|
||||
|
||||
def _get_delayed_event_content(self, event: JsonDict) -> JsonDict:
|
||||
def _get_delayed_event_content(self, event: LaxJsonDict) -> JsonDict:
|
||||
key = "content"
|
||||
self.assertIn(key, event)
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ from synapse.appservice import ApplicationService
|
||||
from synapse.rest import admin, devices, sync
|
||||
from synapse.rest.client import keys, login, register
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, UserID, create_requester
|
||||
from synapse.types import LaxJsonDict, UserID, create_requester
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -87,7 +87,7 @@ class DehydratedDeviceTestCase(unittest.HomeserverTestCase):
|
||||
def test_dehydrate_msc3814(self) -> None:
|
||||
user = self.register_user("mikey", "pass")
|
||||
token = self.login(user, "pass", device_id="device1")
|
||||
content: JsonDict = {
|
||||
content: LaxJsonDict = {
|
||||
"device_data": {
|
||||
"algorithm": "m.dehydration.v1.olm",
|
||||
},
|
||||
@@ -290,7 +290,7 @@ class DehydratedDeviceTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
user = self.register_user("mikey", "pass")
|
||||
token = self.login(user, "pass", device_id="device1")
|
||||
content: JsonDict = {
|
||||
content: LaxJsonDict = {
|
||||
"device_data": {
|
||||
"algorithm": "m.dehydration.v1.olm",
|
||||
},
|
||||
@@ -487,7 +487,7 @@ class DehydratedDeviceTestCase(unittest.HomeserverTestCase):
|
||||
def test_msc3814_dehydrated_device_delete_works(self) -> None:
|
||||
user = self.register_user("mikey", "pass")
|
||||
token = self.login(user, "pass", device_id="device1")
|
||||
content: JsonDict = {
|
||||
content: LaxJsonDict = {
|
||||
"device_data": {
|
||||
"algorithm": "m.dehydration.v1.olm",
|
||||
},
|
||||
|
||||
@@ -64,7 +64,7 @@ from synapse.rest.synapse.client.media_upload_limit_exceeded import (
|
||||
MEDIA_UPLOAD_LIMIT_EXCEEDED_PATH,
|
||||
)
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, UserID
|
||||
from synapse.types import JsonDict, LaxJsonDict, UserID
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.stringutils import parse_and_validate_mxc_uri
|
||||
|
||||
@@ -294,7 +294,7 @@ class URLPreviewTests(unittest.HomeserverTestCase):
|
||||
|
||||
self.reactor.nameResolver = Resolver() # type: ignore[assignment]
|
||||
|
||||
def _assert_small_png(self, json_body: JsonDict) -> None:
|
||||
def _assert_small_png(self, json_body: LaxJsonDict) -> None:
|
||||
"""Assert properties from the SMALL_PNG test image."""
|
||||
self.assertTrue(json_body["og:image"].startswith("mxc://"))
|
||||
self.assertEqual(json_body["og:image:height"], 1)
|
||||
|
||||
@@ -30,7 +30,7 @@ from synapse.rest.client import login, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage._base import db_to_json
|
||||
from synapse.storage.database import LoggingTransaction
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests.unittest import HomeserverTestCase, override_config
|
||||
@@ -91,7 +91,7 @@ class RedactionsTestCase(HomeserverTestCase):
|
||||
expect_code: int = 200,
|
||||
with_relations: list[str] | None = None,
|
||||
content: JsonDict | None = None,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""Helper function to send a redaction event.
|
||||
|
||||
Returns the json body.
|
||||
@@ -108,7 +108,7 @@ class RedactionsTestCase(HomeserverTestCase):
|
||||
self.assertEqual(channel.code, expect_code)
|
||||
return channel.json_body
|
||||
|
||||
def _sync_room_timeline(self, access_token: str, room_id: str) -> list[JsonDict]:
|
||||
def _sync_room_timeline(self, access_token: str, room_id: str) -> list[LaxJsonDict]:
|
||||
channel = self.make_request("GET", "sync", access_token=access_token)
|
||||
self.assertEqual(channel.code, 200)
|
||||
room_sync = channel.json_body["rooms"]["join"][room_id]
|
||||
@@ -642,7 +642,7 @@ class RedactionsTestCase(HomeserverTestCase):
|
||||
self.assertEqual(redact_event["redacts"], event_id)
|
||||
|
||||
# But it isn't actually part of the event.
|
||||
def get_event(txn: LoggingTransaction) -> JsonDict:
|
||||
def get_event(txn: LoggingTransaction) -> LaxJsonDict:
|
||||
return db_to_json(
|
||||
main_datastore._fetch_event_rows(txn, [redaction_event_id])[
|
||||
redaction_event_id
|
||||
|
||||
@@ -38,7 +38,7 @@ from synapse.appservice import ApplicationService
|
||||
from synapse.rest.client import account, account_validity, login, logout, register, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage._base import db_to_json
|
||||
from synapse.types import JsonDict, UserID
|
||||
from synapse.types import JsonDict, LaxJsonDict, UserID
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -364,7 +364,7 @@ class RegisterRestServletTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
@override_config({"registration_requires_token": True})
|
||||
def test_POST_registration_token_invalid(self) -> None:
|
||||
params: JsonDict = {
|
||||
params: LaxJsonDict = {
|
||||
"username": "kermit",
|
||||
"password": "monkey",
|
||||
}
|
||||
@@ -413,7 +413,7 @@ class RegisterRestServletTestCase(unittest.HomeserverTestCase):
|
||||
},
|
||||
)
|
||||
)
|
||||
params1: JsonDict = {"username": "bert", "password": "monkey"}
|
||||
params1: LaxJsonDict = {"username": "bert", "password": "monkey"}
|
||||
params2: JsonDict = {"username": "ernie", "password": "monkey"}
|
||||
# Do 2 requests without auth to get two session IDs
|
||||
channel1 = self.make_request(b"POST", self.url, params1)
|
||||
@@ -537,7 +537,7 @@ class RegisterRestServletTestCase(unittest.HomeserverTestCase):
|
||||
)
|
||||
|
||||
# Do 2 requests without auth to get two session IDs
|
||||
params1: JsonDict = {"username": "bert", "password": "monkey"}
|
||||
params1: LaxJsonDict = {"username": "bert", "password": "monkey"}
|
||||
params2: JsonDict = {"username": "ernie", "password": "monkey"}
|
||||
channel1 = self.make_request(b"POST", self.url, params1)
|
||||
session1 = channel1.json_body["session"]
|
||||
|
||||
@@ -29,7 +29,7 @@ from synapse.api.constants import AccountDataTypes, EventTypes, RelationTypes
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import login, register, relations, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -136,7 +136,7 @@ class BaseRelationsTestCase(unittest.HomeserverTestCase):
|
||||
self.assertEqual(200, channel.code, channel.json_body)
|
||||
return [ev["event_id"] for ev in channel.json_body["chunk"]]
|
||||
|
||||
def _get_bundled_aggregations(self) -> JsonDict:
|
||||
def _get_bundled_aggregations(self) -> LaxJsonDict:
|
||||
"""
|
||||
Requests /event on the parent ID and returns the m.relations field (from unsigned), if it exists.
|
||||
"""
|
||||
@@ -149,7 +149,7 @@ class BaseRelationsTestCase(unittest.HomeserverTestCase):
|
||||
self.assertEqual(200, channel.code, channel.json_body)
|
||||
return channel.json_body["unsigned"].get("m.relations", {})
|
||||
|
||||
def _find_event_in_chunk(self, events: list[JsonDict]) -> JsonDict:
|
||||
def _find_event_in_chunk(self, events: list[JsonDict]) -> LaxJsonDict:
|
||||
"""
|
||||
Find the parent event in a chunk of events and assert that it has the proper bundled aggregations.
|
||||
"""
|
||||
@@ -362,7 +362,10 @@ class RelationsTestCase(BaseRelationsTestCase):
|
||||
self.assertNotIn("m.relations", channel.json_body["unsigned"])
|
||||
|
||||
def _assert_edit_bundle(
|
||||
self, event_json: JsonDict, edit_event_id: str, edit_event_content: JsonDict
|
||||
self,
|
||||
event_json: LaxJsonDict,
|
||||
edit_event_id: str,
|
||||
edit_event_content: LaxJsonDict,
|
||||
) -> None:
|
||||
"""
|
||||
Assert that the given event has a correctly-serialised edit event in its
|
||||
@@ -1101,7 +1104,7 @@ class BundledAggregationsTestCase(BaseRelationsTestCase):
|
||||
"""
|
||||
access_token = access_token or self.user_token
|
||||
|
||||
def assert_bundle(event_json: JsonDict) -> None:
|
||||
def assert_bundle(event_json: LaxJsonDict) -> None:
|
||||
"""Assert the expected values of the bundled aggregations."""
|
||||
relations_dict = event_json["unsigned"].get("m.relations")
|
||||
|
||||
@@ -1200,7 +1203,7 @@ class BundledAggregationsTestCase(BaseRelationsTestCase):
|
||||
# the current_user_participated flag is True, create a factory for the
|
||||
# two versions.
|
||||
def _gen_assert(participated: bool) -> Callable[[JsonDict], None]:
|
||||
def assert_thread(bundled_aggregations: JsonDict) -> None:
|
||||
def assert_thread(bundled_aggregations: LaxJsonDict) -> None:
|
||||
self.assertEqual(2, bundled_aggregations.get("count"))
|
||||
self.assertEqual(
|
||||
participated, bundled_aggregations.get("current_user_participated")
|
||||
@@ -1256,7 +1259,7 @@ class BundledAggregationsTestCase(BaseRelationsTestCase):
|
||||
)
|
||||
reference_event_id = channel.json_body["event_id"]
|
||||
|
||||
def assert_thread(bundled_aggregations: JsonDict) -> None:
|
||||
def assert_thread(bundled_aggregations: LaxJsonDict) -> None:
|
||||
self.assertEqual(2, bundled_aggregations.get("count"))
|
||||
self.assertTrue(bundled_aggregations.get("current_user_participated"))
|
||||
# The latest thread event has some fields that don't matter.
|
||||
@@ -1486,7 +1489,7 @@ class RelationIgnoredUserTestCase(BaseRelationsTestCase):
|
||||
relation_type: str,
|
||||
allowed_event_ids: list[str],
|
||||
ignored_event_ids: list[str],
|
||||
) -> tuple[JsonDict, JsonDict]:
|
||||
) -> tuple[LaxJsonDict, LaxJsonDict]:
|
||||
"""
|
||||
Fetch the relations and ensure they're all there, then ignore user2, and
|
||||
repeat.
|
||||
@@ -1793,7 +1796,7 @@ class RelationRedactionTestCase(BaseRelationsTestCase):
|
||||
|
||||
|
||||
class ThreadsTestCase(BaseRelationsTestCase):
|
||||
def _get_threads(self, body: JsonDict) -> list[tuple[str, str]]:
|
||||
def _get_threads(self, body: LaxJsonDict) -> list[tuple[str, str]]:
|
||||
return [
|
||||
(
|
||||
ev["event_id"],
|
||||
|
||||
@@ -24,7 +24,7 @@ from twisted.internet.testing import MemoryReactor
|
||||
import synapse.rest.admin
|
||||
from synapse.rest.client import login, reporting, room
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -153,7 +153,7 @@ class ReportEventTestCase(unittest.HomeserverTestCase):
|
||||
msg=channel.result["body"],
|
||||
)
|
||||
|
||||
def _assert_status(self, response_status: int, data: JsonDict) -> None:
|
||||
def _assert_status(self, response_status: int, data: LaxJsonDict) -> None:
|
||||
channel = self.make_request(
|
||||
"POST", self.report_path, data, access_token=self.other_user_tok
|
||||
)
|
||||
@@ -225,7 +225,7 @@ class ReportRoomTestCase(unittest.HomeserverTestCase):
|
||||
)
|
||||
self.assertEqual(200, channel.code, msg=channel.result["body"])
|
||||
|
||||
def _assert_status(self, response_status: int, data: JsonDict) -> None:
|
||||
def _assert_status(self, response_status: int, data: LaxJsonDict) -> None:
|
||||
channel = self.make_request(
|
||||
"POST",
|
||||
self.report_path,
|
||||
@@ -310,7 +310,7 @@ class ReportUserTestCase(unittest.HomeserverTestCase):
|
||||
self.assertEqual(len(rows), 0)
|
||||
|
||||
def _assert_status(
|
||||
self, response_status: int, data: JsonDict, user_id: str | None = None
|
||||
self, response_status: int, data: LaxJsonDict, user_id: str | None = None
|
||||
) -> None:
|
||||
if user_id is None:
|
||||
user_id = self.target_user_id
|
||||
|
||||
@@ -28,7 +28,7 @@ from synapse.events.utils import FilteredEvent
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import login, retention, room
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, create_requester
|
||||
from synapse.types import LaxJsonDict, create_requester
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.visibility import filter_and_transform_events_for_client
|
||||
|
||||
@@ -247,7 +247,7 @@ class RetentionTestCase(unittest.HomeserverTestCase):
|
||||
# has been purged.
|
||||
self.get_event(room_id, bool(create_event))
|
||||
|
||||
def get_event(self, event_id: str, expect_none: bool = False) -> JsonDict:
|
||||
def get_event(self, event_id: str, expect_none: bool = False) -> LaxJsonDict:
|
||||
event = self.get_success(self.store.get_event(event_id, allow_none=True))
|
||||
|
||||
if expect_none:
|
||||
@@ -387,7 +387,7 @@ class RetentionNoDefaultPolicyTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
def get_event(
|
||||
self, room_id: str, event_id: str, expected_code: int = 200
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
url = "/_matrix/client/r0/rooms/%s/event/%s" % (room_id, event_id)
|
||||
|
||||
channel = self.make_request("GET", url, access_token=self.token)
|
||||
|
||||
@@ -61,7 +61,14 @@ from synapse.rest.client import (
|
||||
sync,
|
||||
)
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, JsonMapping, RoomAlias, UserID, create_requester
|
||||
from synapse.types import (
|
||||
JsonDict,
|
||||
JsonMapping,
|
||||
LaxJsonDict,
|
||||
RoomAlias,
|
||||
UserID,
|
||||
create_requester,
|
||||
)
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.duration import Duration
|
||||
from synapse.util.stringutils import random_string
|
||||
@@ -1855,12 +1862,12 @@ class RoomMessagesTestCase(RoomBase):
|
||||
def test_spam_checker_check_event_for_spam(
|
||||
self,
|
||||
name: str,
|
||||
value: str | bool | Codes | tuple[Codes, JsonDict],
|
||||
value: str | bool | Codes | tuple[Codes, LaxJsonDict],
|
||||
expected_code: int,
|
||||
expected_fields: dict,
|
||||
) -> None:
|
||||
class SpamCheck:
|
||||
mock_return_value: str | bool | Codes | tuple[Codes, JsonDict] | bool = (
|
||||
mock_return_value: str | bool | Codes | tuple[Codes, LaxJsonDict] | bool = (
|
||||
"NOT_SPAM"
|
||||
)
|
||||
mock_content: JsonMapping | None = None
|
||||
@@ -2219,7 +2226,7 @@ class RoomInitialSyncTestCase(RoomBase):
|
||||
self.assertEqual("join", channel.json_body["membership"])
|
||||
|
||||
# Room state is easier to assert on if we unpack it into a dict
|
||||
state: JsonDict = {}
|
||||
state: LaxJsonDict = {}
|
||||
for event in channel.json_body["state"]:
|
||||
if "state_key" not in event:
|
||||
continue
|
||||
@@ -2983,7 +2990,7 @@ class PublicRoomsRoomTypeFilterTestCase(unittest.HomeserverTestCase):
|
||||
tok=self.token,
|
||||
)
|
||||
|
||||
def default_config(self) -> JsonDict:
|
||||
def default_config(self) -> LaxJsonDict:
|
||||
config = default_config(server_name="test")
|
||||
config["room_list_publication_rules"] = [{"action": "allow"}]
|
||||
return config
|
||||
@@ -3985,7 +3992,7 @@ class RoomAliasListTestCase(unittest.HomeserverTestCase):
|
||||
res = self._get_aliases(user_tok)
|
||||
self.assertEqual(res["aliases"], [alias1])
|
||||
|
||||
def _get_aliases(self, access_token: str, expected_code: int = 200) -> JsonDict:
|
||||
def _get_aliases(self, access_token: str, expected_code: int = 200) -> LaxJsonDict:
|
||||
"""Calls the endpoint under test. returns the json response object."""
|
||||
channel = self.make_request(
|
||||
"GET",
|
||||
@@ -4040,7 +4047,7 @@ class RoomCanonicalAliasTestCase(unittest.HomeserverTestCase):
|
||||
)
|
||||
self.assertEqual(channel.code, expected_code, channel.result)
|
||||
|
||||
def _get_canonical_alias(self, expected_code: int = 200) -> JsonDict:
|
||||
def _get_canonical_alias(self, expected_code: int = 200) -> LaxJsonDict:
|
||||
"""Calls the endpoint under test. returns the json response object."""
|
||||
channel = self.make_request(
|
||||
"GET",
|
||||
@@ -4053,8 +4060,8 @@ class RoomCanonicalAliasTestCase(unittest.HomeserverTestCase):
|
||||
return res
|
||||
|
||||
def _set_canonical_alias(
|
||||
self, content: JsonDict, expected_code: int = 200
|
||||
) -> JsonDict:
|
||||
self, content: LaxJsonDict, expected_code: int = 200
|
||||
) -> LaxJsonDict:
|
||||
"""Calls the endpoint under test. returns the json response object."""
|
||||
channel = self.make_request(
|
||||
"PUT",
|
||||
@@ -4815,7 +4822,7 @@ class MSC4293RedactOnBanKickTestCase(unittest.FederatingHomeserverTestCase):
|
||||
def _check_redactions(
|
||||
self,
|
||||
original_events: list[EventBase],
|
||||
pulled_events: list[JsonDict],
|
||||
pulled_events: list[LaxJsonDict],
|
||||
expect_redaction: bool,
|
||||
reason: str | None = None,
|
||||
) -> None:
|
||||
|
||||
@@ -35,7 +35,7 @@ from synapse.api.constants import (
|
||||
)
|
||||
from synapse.rest.client import devices, knock, login, read_marker, receipts, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -132,7 +132,7 @@ class SyncFilterTestCase(unittest.HomeserverTestCase):
|
||||
self.assertEqual(len(events), 1, [event["content"] for event in events])
|
||||
self.assertEqual(events[0]["content"]["body"], "with wrong label", events[0])
|
||||
|
||||
def _test_sync_filter_labels(self, sync_filter: str) -> list[JsonDict]:
|
||||
def _test_sync_filter_labels(self, sync_filter: str) -> list[LaxJsonDict]:
|
||||
user_id = self.register_user("kermit", "test")
|
||||
tok = self.login("kermit", "test")
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ from synapse.module_api.callbacks.third_party_event_rules_callbacks import (
|
||||
from synapse.rest import admin
|
||||
from synapse.rest.client import account, login, profile, room
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, Requester, StateMap
|
||||
from synapse.types import JsonDict, LaxJsonDict, Requester, StateMap
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.frozenutils import unfreeze
|
||||
|
||||
@@ -298,7 +298,7 @@ class ThirdPartyRulesTestCase(unittest.FederatingHomeserverTestCase):
|
||||
# first patch the event checker so that it will modify the event
|
||||
async def check(
|
||||
ev: EventBase, state: StateMap[EventBase]
|
||||
) -> tuple[bool, JsonDict | None]:
|
||||
) -> tuple[bool, LaxJsonDict | None]:
|
||||
d = ev.get_dict()
|
||||
d["content"] = {
|
||||
"msgtype": "m.text",
|
||||
@@ -446,7 +446,7 @@ class ThirdPartyRulesTestCase(unittest.FederatingHomeserverTestCase):
|
||||
# Define a callback that sends a custom event on power levels update.
|
||||
async def test_fn(
|
||||
event: EventBase, state_events: StateMap[EventBase]
|
||||
) -> tuple[bool, JsonDict | None]:
|
||||
) -> tuple[bool, LaxJsonDict | None]:
|
||||
if event.is_state() and event.type == EventTypes.PowerLevels:
|
||||
await api.create_and_send_event_into_room(
|
||||
{
|
||||
|
||||
@@ -27,7 +27,7 @@ from twisted.internet import defer, reactor as _reactor
|
||||
|
||||
from synapse.logging.context import SENTINEL_CONTEXT, LoggingContext, current_context
|
||||
from synapse.rest.client.transactions import CLEANUP_PERIOD, HttpTransactionCache
|
||||
from synapse.types import ISynapseReactor, JsonDict
|
||||
from synapse.types import ISynapseReactor, JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.duration import Duration
|
||||
|
||||
@@ -122,7 +122,7 @@ class HttpTransactionCacheTestCase(unittest.TestCase):
|
||||
"""
|
||||
called = [False]
|
||||
|
||||
def cb() -> "defer.Deferred[tuple[int, JsonDict]]":
|
||||
def cb() -> "defer.Deferred[tuple[int, LaxJsonDict]]":
|
||||
if called[0]:
|
||||
# return a valid result the second time
|
||||
return defer.succeed(self.mock_http_response)
|
||||
@@ -154,7 +154,7 @@ class HttpTransactionCacheTestCase(unittest.TestCase):
|
||||
"""
|
||||
called = [False]
|
||||
|
||||
def cb() -> "defer.Deferred[tuple[int, JsonDict]]":
|
||||
def cb() -> "defer.Deferred[tuple[int, LaxJsonDict]]":
|
||||
if called[0]:
|
||||
# return a valid result the second time
|
||||
return defer.succeed(self.mock_http_response)
|
||||
|
||||
+16
-16
@@ -47,7 +47,7 @@ from twisted.web.server import Site
|
||||
from synapse.api.constants import EventTypes, Membership, ReceiptTypes
|
||||
from synapse.api.errors import Codes
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.duration import Duration
|
||||
|
||||
from tests.server import FakeChannel, make_request
|
||||
@@ -171,7 +171,7 @@ class RestHelper:
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
tok: str | None = None,
|
||||
extra_data: dict | None = None,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
return self.change_membership(
|
||||
room=room,
|
||||
src=src,
|
||||
@@ -191,7 +191,7 @@ class RestHelper:
|
||||
appservice_user_id: str | None = None,
|
||||
expect_errcode: Codes | None = None,
|
||||
expect_additional_fields: dict | None = None,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
return self.change_membership(
|
||||
room=room,
|
||||
src=user,
|
||||
@@ -244,7 +244,7 @@ class RestHelper:
|
||||
user: str | None = None,
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
tok: str | None = None,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
return self.change_membership(
|
||||
room=room,
|
||||
src=user,
|
||||
@@ -261,7 +261,7 @@ class RestHelper:
|
||||
targ: str,
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
tok: str | None = None,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""A convenience helper: `change_membership` with `membership` preset to "ban"."""
|
||||
return self.change_membership(
|
||||
room=room,
|
||||
@@ -284,7 +284,7 @@ class RestHelper:
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
expect_errcode: str | None = None,
|
||||
expect_additional_fields: dict | None = None,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""
|
||||
Send a membership state event into a room.
|
||||
|
||||
@@ -378,7 +378,7 @@ class RestHelper:
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
custom_headers: Iterable[tuple[AnyStr, AnyStr]] | None = None,
|
||||
type: str = "m.room.message",
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
if body is None:
|
||||
body = "body_text_here"
|
||||
|
||||
@@ -429,7 +429,7 @@ class RestHelper:
|
||||
tok: str | None = None,
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
custom_headers: Iterable[tuple[AnyStr, AnyStr]] | None = None,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
if txn_id is None:
|
||||
txn_id = "m%s" % (str(time.time()))
|
||||
|
||||
@@ -465,7 +465,7 @@ class RestHelper:
|
||||
tok: str | None = None,
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
custom_headers: Iterable[tuple[AnyStr, AnyStr]] | None = None,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""
|
||||
Send an event that has a sticky duration according to MSC4354.
|
||||
"""
|
||||
@@ -498,7 +498,7 @@ class RestHelper:
|
||||
event_id: str,
|
||||
tok: str | None = None,
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""Request a specific event from the server.
|
||||
|
||||
Args:
|
||||
@@ -538,7 +538,7 @@ class RestHelper:
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
state_key: str = "",
|
||||
method: str = "GET",
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""Read or write some state from a given room
|
||||
|
||||
Args:
|
||||
@@ -587,7 +587,7 @@ class RestHelper:
|
||||
tok: str,
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
state_key: str = "",
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""Gets some state from a room
|
||||
|
||||
Args:
|
||||
@@ -615,7 +615,7 @@ class RestHelper:
|
||||
tok: str | None = None,
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
state_key: str = "",
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""Set some state in a room
|
||||
|
||||
Args:
|
||||
@@ -642,7 +642,7 @@ class RestHelper:
|
||||
tok: str,
|
||||
filename: str = "test.png",
|
||||
expect_code: int = HTTPStatus.OK,
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""Upload a piece of test media to the media repo
|
||||
Args:
|
||||
resource: The resource that will handle the upload request
|
||||
@@ -718,7 +718,7 @@ class RestHelper:
|
||||
with_sid: bool = False,
|
||||
idp_id: str | None = None,
|
||||
expected_status: int = 200,
|
||||
) -> tuple[JsonDict, FakeAuthorizationGrant]:
|
||||
) -> tuple[LaxJsonDict, FakeAuthorizationGrant]:
|
||||
"""Log in (as a new user) via OIDC
|
||||
|
||||
Returns the result of the final token login and the fake authorization grant.
|
||||
@@ -786,7 +786,7 @@ class RestHelper:
|
||||
def auth_via_oidc(
|
||||
self,
|
||||
fake_server: FakeOidcServer,
|
||||
user_info_dict: JsonDict,
|
||||
user_info_dict: LaxJsonDict,
|
||||
client_redirect_url: str | None = None,
|
||||
ui_auth_session_id: str | None = None,
|
||||
with_sid: bool = False,
|
||||
|
||||
@@ -35,7 +35,7 @@ from synapse.http.site import SynapseRequest
|
||||
from synapse.rest.key.v2 import KeyResource
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage.keys import FetchKeyResult
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.httpresourcetree import create_resource_tree
|
||||
from synapse.util.stringutils import random_string
|
||||
@@ -67,7 +67,7 @@ class BaseRemoteKeyResourceTestCase(unittest.HomeserverTestCase):
|
||||
path: str,
|
||||
ignore_backoff: bool = False,
|
||||
**kwargs: Any,
|
||||
) -> JsonDict | list:
|
||||
) -> LaxJsonDict | list:
|
||||
self.assertTrue(ignore_backoff)
|
||||
self.assertEqual(destination, server_name)
|
||||
key_id = "%s:%s" % (signing_key.alg, signing_key.version)
|
||||
|
||||
@@ -35,7 +35,7 @@ from twisted.web.resource import Resource
|
||||
from synapse.config.oembed import OEmbedEndpointConfig
|
||||
from synapse.media.url_previewer import IMAGE_CACHE_EXPIRY_MS
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.stringutils import parse_and_validate_mxc_uri
|
||||
|
||||
@@ -160,7 +160,7 @@ class URLPreviewTests(unittest.HomeserverTestCase):
|
||||
"""
|
||||
return {"/_matrix/media": self.hs.get_media_repository_resource()}
|
||||
|
||||
def _assert_small_png(self, json_body: JsonDict) -> None:
|
||||
def _assert_small_png(self, json_body: LaxJsonDict) -> None:
|
||||
"""Assert properties from the SMALL_PNG test image."""
|
||||
self.assertTrue(json_body["og:image"].startswith("mxc://"))
|
||||
self.assertEqual(json_body["og:image:height"], 1)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
from synapse._scripts.register_new_matrix_user import request_registration
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import LaxJsonDict
|
||||
|
||||
from tests.unittest import TestCase
|
||||
|
||||
@@ -40,7 +40,7 @@ class RegisterTestCase(TestCase):
|
||||
return r
|
||||
|
||||
def post(
|
||||
url: str, json: JsonDict | None = None, verify: bool | None = None
|
||||
url: str, json: LaxJsonDict | None = None, verify: bool | None = None
|
||||
) -> Mock:
|
||||
# Make sure we are sent the correct info
|
||||
assert json is not None
|
||||
@@ -129,7 +129,7 @@ class RegisterTestCase(TestCase):
|
||||
return r
|
||||
|
||||
def post(
|
||||
url: str, json: JsonDict | None = None, verify: bool | None = None
|
||||
url: str, json: LaxJsonDict | None = None, verify: bool | None = None
|
||||
) -> Mock:
|
||||
# Make sure we are sent the correct info
|
||||
assert json is not None
|
||||
|
||||
+5
-5
@@ -99,7 +99,7 @@ from synapse.storage import DataStore
|
||||
from synapse.storage.database import LoggingDatabaseConnection, make_pool
|
||||
from synapse.storage.engines import BaseDatabaseEngine, create_engine
|
||||
from synapse.storage.prepare_database import prepare_database
|
||||
from synapse.types import ISynapseReactor, JsonDict
|
||||
from synapse.types import ISynapseReactor, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.duration import Duration
|
||||
from synapse.util.json import json_encoder
|
||||
@@ -164,13 +164,13 @@ class FakeChannel:
|
||||
self._request = request
|
||||
|
||||
@property
|
||||
def json_body(self) -> JsonDict:
|
||||
def json_body(self) -> LaxJsonDict:
|
||||
body = json.loads(self.text_body)
|
||||
assert isinstance(body, dict)
|
||||
return body
|
||||
|
||||
@property
|
||||
def json_list(self) -> list[JsonDict]:
|
||||
def json_list(self) -> list[LaxJsonDict]:
|
||||
body = json.loads(self.text_body)
|
||||
assert isinstance(body, list)
|
||||
return body
|
||||
@@ -449,7 +449,7 @@ def make_request(
|
||||
site: Site | FakeSite,
|
||||
method: bytes | str,
|
||||
path: bytes | str,
|
||||
content: bytes | str | JsonDict = b"",
|
||||
content: bytes | str | LaxJsonDict = b"",
|
||||
access_token: str | None = None,
|
||||
request: type[Request] = SynapseRequest,
|
||||
shorthand: bool = True,
|
||||
@@ -1212,7 +1212,7 @@ def setup_test_homeserver(
|
||||
if USE_POSTGRES_FOR_TESTS:
|
||||
test_db = "synapse_test_%s" % uuid.uuid4().hex
|
||||
|
||||
database_config: JsonDict = {
|
||||
database_config: LaxJsonDict = {
|
||||
"name": "psycopg2",
|
||||
"args": {
|
||||
"dbname": test_db,
|
||||
|
||||
@@ -18,7 +18,7 @@ from twisted.test.proto_helpers import MemoryReactor
|
||||
import synapse.rest.admin
|
||||
from synapse.rest.client import login, room, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.duration import Duration
|
||||
|
||||
@@ -43,7 +43,7 @@ class ServerNoticesTests(unittest.HomeserverTestCase):
|
||||
room.register_servlets,
|
||||
]
|
||||
|
||||
def default_config(self) -> JsonDict:
|
||||
def default_config(self) -> LaxJsonDict:
|
||||
config = default_config(server_name="test")
|
||||
|
||||
config.update({"server_notices": DEFAULT_SERVER_NOTICES_CONFIG})
|
||||
@@ -77,7 +77,7 @@ class ServerNoticesTests(unittest.HomeserverTestCase):
|
||||
self,
|
||||
admin_access_token: str,
|
||||
target_user_id: str,
|
||||
notice_content: JsonDict,
|
||||
notice_content: LaxJsonDict,
|
||||
) -> None:
|
||||
# Send a server notice.
|
||||
channel = self.make_request(
|
||||
@@ -95,7 +95,7 @@ class ServerNoticesTests(unittest.HomeserverTestCase):
|
||||
self,
|
||||
target_user_id: str,
|
||||
target_access_token: str,
|
||||
expected_content: JsonDict,
|
||||
expected_content: LaxJsonDict,
|
||||
user_accepts_invite: bool,
|
||||
) -> None:
|
||||
# Have the target user sync.
|
||||
|
||||
@@ -30,7 +30,7 @@ from synapse.server_notices.resource_limits_server_notices import (
|
||||
ResourceLimitsServerNotices,
|
||||
)
|
||||
from synapse.server_notices.server_notices_sender import ServerNoticesSender
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -39,7 +39,7 @@ from tests.utils import default_config
|
||||
|
||||
|
||||
class TestResourceLimitsServerNotices(unittest.HomeserverTestCase):
|
||||
def default_config(self) -> JsonDict:
|
||||
def default_config(self) -> LaxJsonDict:
|
||||
config = default_config(server_name="test")
|
||||
|
||||
config.update(
|
||||
|
||||
@@ -36,7 +36,7 @@ from synapse.storage.background_updates import (
|
||||
)
|
||||
from synapse.storage.database import LoggingTransaction
|
||||
from synapse.storage.engines import PostgresEngine, Sqlite3Engine
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import JsonDict, LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.duration import Duration
|
||||
|
||||
@@ -58,7 +58,7 @@ class BackgroundUpdateTestCase(unittest.HomeserverTestCase):
|
||||
)
|
||||
self.store = self.hs.get_datastores().main
|
||||
|
||||
async def update(self, progress: JsonDict, count: int) -> int:
|
||||
async def update(self, progress: LaxJsonDict, count: int) -> int:
|
||||
fake_work_duration = Duration(seconds=1)
|
||||
await self.clock.sleep(fake_work_duration)
|
||||
progress = {"my_key": progress["my_key"] + 1}
|
||||
@@ -321,7 +321,7 @@ class BackgroundUpdateTestCase(unittest.HomeserverTestCase):
|
||||
)
|
||||
|
||||
# Run the update with the long-running update item
|
||||
async def update_long(progress: JsonDict, count: int) -> int:
|
||||
async def update_long(progress: LaxJsonDict, count: int) -> int:
|
||||
very_long_fake_work_duration = Duration(seconds=5)
|
||||
await self.clock.sleep(very_long_fake_work_duration)
|
||||
progress = {"my_key": progress["my_key"] + 1}
|
||||
|
||||
@@ -46,7 +46,7 @@ from synapse.server import HomeServer
|
||||
from synapse.storage.database import LoggingTransaction
|
||||
from synapse.storage.types import Cursor
|
||||
from synapse.synapse_rust.events import EventInternalMetadata
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import LaxJsonDict
|
||||
from synapse.util.clock import Clock
|
||||
from synapse.util.json import json_encoder
|
||||
|
||||
@@ -1064,7 +1064,7 @@ class EventFederationWorkerStoreTestCase(tests.unittest.HomeserverTestCase):
|
||||
# The rest are events in the room but not backfilled tet.
|
||||
our_server_events = {"5", "4", "B", "3", "A"}
|
||||
|
||||
complete_event_dict_map: dict[str, JsonDict] = {}
|
||||
complete_event_dict_map: dict[str, LaxJsonDict] = {}
|
||||
stream_ordering = 0
|
||||
for event_id, prev_event_ids in event_graph.items():
|
||||
depth = depth_map[event_id]
|
||||
|
||||
@@ -30,7 +30,7 @@ from synapse.events import EventBase, make_event_from_dict
|
||||
from synapse.events.builder import EventBuilder
|
||||
from synapse.server import HomeServer
|
||||
from synapse.synapse_rust.events import EventInternalMetadata
|
||||
from synapse.types import JsonDict, RoomID, UserID
|
||||
from synapse.types import JsonDict, LaxJsonDict, RoomID, UserID
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -67,7 +67,7 @@ class RedactionTestCase(unittest.HomeserverTestCase):
|
||||
room: RoomID,
|
||||
user: UserID,
|
||||
membership: str,
|
||||
extra_content: JsonDict | None = None,
|
||||
extra_content: LaxJsonDict | None = None,
|
||||
) -> EventBase:
|
||||
content = {"membership": membership}
|
||||
content.update(extra_content or {})
|
||||
|
||||
@@ -43,6 +43,7 @@ from synapse.server import HomeServer
|
||||
from synapse.storage.databases.main.stream import CurrentStateDeltaMembership
|
||||
from synapse.types import (
|
||||
JsonDict,
|
||||
LaxJsonDict,
|
||||
PersistedEventPosition,
|
||||
RoomStreamToken,
|
||||
UserID,
|
||||
@@ -149,7 +150,7 @@ class PaginationTestCase(HomeserverTestCase):
|
||||
)
|
||||
self.event_id_none = res["event_id"]
|
||||
|
||||
def _filter_messages(self, filter: JsonDict) -> list[str]:
|
||||
def _filter_messages(self, filter: LaxJsonDict) -> list[str]:
|
||||
"""Make a request to /messages with a filter, returns the chunk of events."""
|
||||
|
||||
events, next_key, _ = self.get_success(
|
||||
@@ -323,7 +324,7 @@ class GetLastEventInRoomBeforeStreamOrderingTestCase(HomeserverTestCase):
|
||||
|
||||
def _send_event_on_instance(
|
||||
self, instance_name: str, room_id: str, access_token: str
|
||||
) -> tuple[JsonDict, PersistedEventPosition]:
|
||||
) -> tuple[LaxJsonDict, PersistedEventPosition]:
|
||||
"""
|
||||
Send an event in a room and mimic that it was persisted by a specific
|
||||
instance/worker.
|
||||
|
||||
+2
-2
@@ -27,7 +27,7 @@ from synapse.api.errors import Codes, HttpResponseException, SynapseError
|
||||
from synapse.appservice import ApplicationService
|
||||
from synapse.rest.client import register, sync
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import JsonDict, UserID
|
||||
from synapse.types import LaxJsonDict, UserID
|
||||
from synapse.util.clock import Clock
|
||||
|
||||
from tests import unittest
|
||||
@@ -38,7 +38,7 @@ from tests.utils import default_config
|
||||
class TestMauLimit(unittest.HomeserverTestCase):
|
||||
servlets = [register.register_servlets, sync.register_servlets]
|
||||
|
||||
def default_config(self) -> JsonDict:
|
||||
def default_config(self) -> LaxJsonDict:
|
||||
config = default_config(server_name="test")
|
||||
|
||||
config.update(
|
||||
|
||||
@@ -22,17 +22,17 @@ from synapse.api.room_versions import (
|
||||
)
|
||||
from synapse.events import EventBase, make_event_from_dict
|
||||
from synapse.federation.federation_base import event_from_pdu_json
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import LaxJsonDict
|
||||
|
||||
|
||||
def default_event_fields(room_version: RoomVersion) -> JsonDict:
|
||||
def default_event_fields(room_version: RoomVersion) -> LaxJsonDict:
|
||||
"""Return default values for every field required by `room_version`."""
|
||||
|
||||
# We need to include entries for every required field for the room version.
|
||||
# Note that they don't necessarily have to be valid values, just enough to
|
||||
# allow us to construct the event class. (Ideally we'd build a fully valid
|
||||
# event, but this is fine for now.)
|
||||
defaults: JsonDict = {
|
||||
defaults: LaxJsonDict = {
|
||||
"type": "m.test",
|
||||
"sender": "@test:test",
|
||||
"content": {},
|
||||
@@ -57,9 +57,9 @@ def default_event_fields(room_version: RoomVersion) -> JsonDict:
|
||||
|
||||
|
||||
def make_test_event(
|
||||
event_dict: JsonDict | None = None,
|
||||
event_dict: LaxJsonDict | None = None,
|
||||
room_version: RoomVersion = RoomVersions.V1,
|
||||
internal_metadata_dict: JsonDict | None = None,
|
||||
internal_metadata_dict: LaxJsonDict | None = None,
|
||||
rejected_reason: str | None = None,
|
||||
**fields: Unpack["_EventFields"],
|
||||
) -> EventBase:
|
||||
@@ -71,7 +71,7 @@ def make_test_event(
|
||||
`**fields` wins over `event_dict` so call sites can override a
|
||||
shared base dict with one-off tweaks.
|
||||
"""
|
||||
merged: JsonDict = {
|
||||
merged: LaxJsonDict = {
|
||||
**default_event_fields(room_version),
|
||||
**(event_dict or {}),
|
||||
**fields,
|
||||
@@ -99,7 +99,7 @@ def make_test_event(
|
||||
|
||||
|
||||
def make_test_pdu_event(
|
||||
pdu: JsonDict,
|
||||
pdu: LaxJsonDict,
|
||||
room_version: RoomVersion,
|
||||
received_time: int | None = None,
|
||||
) -> EventBase:
|
||||
@@ -121,7 +121,7 @@ class _EventFields(TypedDict):
|
||||
event_id: NotRequired[str]
|
||||
type: NotRequired[str]
|
||||
sender: NotRequired[str]
|
||||
content: NotRequired[JsonDict]
|
||||
content: NotRequired[LaxJsonDict]
|
||||
depth: NotRequired[int]
|
||||
origin_server_ts: NotRequired[int]
|
||||
hashes: NotRequired[dict[str, str]]
|
||||
|
||||
+16
-9
@@ -76,7 +76,14 @@ from synapse.logging.context import (
|
||||
from synapse.rest import RegisterServletsFunc
|
||||
from synapse.server import HomeServer
|
||||
from synapse.storage.keys import FetchKeyResult
|
||||
from synapse.types import ISynapseReactor, JsonDict, Requester, UserID, create_requester
|
||||
from synapse.types import (
|
||||
ISynapseReactor,
|
||||
JsonDict,
|
||||
LaxJsonDict,
|
||||
Requester,
|
||||
UserID,
|
||||
create_requester,
|
||||
)
|
||||
from synapse.util.clock import CLOCK_SCHEDULE_EPSILON, Clock
|
||||
from synapse.util.httpresourcetree import create_resource_tree
|
||||
|
||||
@@ -532,7 +539,7 @@ class HomeserverTestCase(TestCase):
|
||||
"/_synapse/admin": servlet_resource,
|
||||
}
|
||||
|
||||
def default_config(self) -> JsonDict:
|
||||
def default_config(self) -> LaxJsonDict:
|
||||
"""
|
||||
Get a default HomeServer config dict.
|
||||
"""
|
||||
@@ -565,7 +572,7 @@ class HomeserverTestCase(TestCase):
|
||||
self,
|
||||
method: bytes | str,
|
||||
path: bytes | str,
|
||||
content: bytes | str | JsonDict = b"",
|
||||
content: bytes | str | LaxJsonDict = b"",
|
||||
access_token: str | None = None,
|
||||
request: type[Request] = SynapseRequest,
|
||||
shorthand: bool = True,
|
||||
@@ -627,7 +634,7 @@ class HomeserverTestCase(TestCase):
|
||||
def setup_test_homeserver(
|
||||
self,
|
||||
server_name: str | None = None,
|
||||
config: JsonDict | None = None,
|
||||
config: LaxJsonDict | None = None,
|
||||
reactor: Optional[ISynapseReactor] = None,
|
||||
clock: Clock | None = None,
|
||||
**extra_homeserver_attributes: Any,
|
||||
@@ -1140,7 +1147,7 @@ class FederatingHomeserverTestCase(HomeserverTestCase):
|
||||
self,
|
||||
method: str,
|
||||
path: str,
|
||||
content: JsonDict | None = None,
|
||||
content: LaxJsonDict | None = None,
|
||||
await_result: bool = True,
|
||||
custom_headers: Iterable[CustomHeaderType] | None = None,
|
||||
client_ip: str = "127.0.0.1",
|
||||
@@ -1184,9 +1191,9 @@ class FederatingHomeserverTestCase(HomeserverTestCase):
|
||||
|
||||
def add_hashes_and_signatures_from_other_server(
|
||||
self,
|
||||
event_dict: JsonDict,
|
||||
event_dict: LaxJsonDict,
|
||||
room_version: RoomVersion = KNOWN_ROOM_VERSIONS[DEFAULT_ROOM_VERSION],
|
||||
) -> JsonDict:
|
||||
) -> LaxJsonDict:
|
||||
"""Adds hashes and signatures to the given event dict
|
||||
|
||||
Returns:
|
||||
@@ -1210,7 +1217,7 @@ def _auth_header_for_request(
|
||||
content: JsonDict | None,
|
||||
) -> str:
|
||||
"""Build a suitable Authorization header for an outgoing federation request"""
|
||||
request_description: JsonDict = {
|
||||
request_description: LaxJsonDict = {
|
||||
"method": method,
|
||||
"uri": path,
|
||||
"destination": destination,
|
||||
@@ -1230,7 +1237,7 @@ def _auth_header_for_request(
|
||||
)
|
||||
|
||||
|
||||
def override_config(extra_config: JsonDict) -> Callable[[TV], TV]:
|
||||
def override_config(extra_config: LaxJsonDict) -> Callable[[TV], TV]:
|
||||
"""A decorator which can be applied to test functions to give additional HS config
|
||||
|
||||
For use
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
from synapse.metrics.jemalloc import JemallocStats
|
||||
from synapse.types import JsonDict
|
||||
from synapse.types import LaxJsonDict
|
||||
from synapse.util.caches.lrucache import LruCache, setup_expire_lru_cache_entries
|
||||
from synapse.util.caches.treecache import TreeCache
|
||||
|
||||
@@ -338,7 +338,7 @@ class LruCacheSizedTestCase(unittest.HomeserverTestCase):
|
||||
class TimeEvictionTestCase(unittest.HomeserverTestCase):
|
||||
"""Test that time based eviction works correctly."""
|
||||
|
||||
def default_config(self) -> JsonDict:
|
||||
def default_config(self) -> LaxJsonDict:
|
||||
config = super().default_config()
|
||||
|
||||
config.setdefault("caches", {})["expiry_time"] = "30m"
|
||||
|
||||
Reference in New Issue
Block a user