mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
type-hint HomeserverTestcase.setup_test_homeserver
(#10961)
* type-hint `HomeserverTestcase.setup_test_homeserver` For better IDE completion. A small drive-by.
This commit is contained in:
parent
7e440520c9
commit
e46ac85d67
1
changelog.d/10961.misc
Normal file
1
changelog.d/10961.misc
Normal file
@ -0,0 +1 @@
|
|||||||
|
Add type-hint to `HomeserverTestcase.setup_test_homeserver`.
|
@ -70,8 +70,16 @@ class BaseStreamTestCase(unittest.HomeserverTestCase):
|
|||||||
# databases objects are the same.
|
# databases objects are the same.
|
||||||
self.worker_hs.get_datastore().db_pool = hs.get_datastore().db_pool
|
self.worker_hs.get_datastore().db_pool = hs.get_datastore().db_pool
|
||||||
|
|
||||||
|
# Normally we'd pass in the handler to `setup_test_homeserver`, which would
|
||||||
|
# eventually hit "Install @cache_in_self attributes" in tests/utils.py.
|
||||||
|
# Unfortunately our handler wants a reference to the homeserver. That leaves
|
||||||
|
# us with a chicken-and-egg problem.
|
||||||
|
# We can workaround this: create the homeserver first, create the handler
|
||||||
|
# and bodge it in after the fact. The bodging requires us to know the
|
||||||
|
# dirty details of how `cache_in_self` works. We politely ask mypy to
|
||||||
|
# ignore our dirty dealings.
|
||||||
self.test_handler = self._build_replication_data_handler()
|
self.test_handler = self._build_replication_data_handler()
|
||||||
self.worker_hs._replication_data_handler = self.test_handler
|
self.worker_hs._replication_data_handler = self.test_handler # type: ignore[attr-defined]
|
||||||
|
|
||||||
repl_handler = ReplicationCommandHandler(self.worker_hs)
|
repl_handler = ReplicationCommandHandler(self.worker_hs)
|
||||||
self.client = ClientReplicationStreamProtocol(
|
self.client = ClientReplicationStreamProtocol(
|
||||||
@ -315,12 +323,15 @@ class BaseMultiWorkerStreamTestCase(unittest.HomeserverTestCase):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Copy the port into a new, non-Optional variable so mypy knows we're
|
||||||
|
# not going to reset `instance_loc` to `None` under its feet. See
|
||||||
|
# https://mypy.readthedocs.io/en/latest/common_issues.html#narrowing-and-inner-functions
|
||||||
|
port = instance_loc.port
|
||||||
|
|
||||||
self.reactor.add_tcp_client_callback(
|
self.reactor.add_tcp_client_callback(
|
||||||
self.reactor.lookups[instance_loc.host],
|
self.reactor.lookups[instance_loc.host],
|
||||||
instance_loc.port,
|
instance_loc.port,
|
||||||
lambda: self._handle_http_replication_attempt(
|
lambda: self._handle_http_replication_attempt(worker_hs, port),
|
||||||
worker_hs, instance_loc.port
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
store = worker_hs.get_datastore()
|
store = worker_hs.get_datastore()
|
||||||
|
@ -94,9 +94,9 @@ class LoginRestServletTestCase(unittest.HomeserverTestCase):
|
|||||||
|
|
||||||
def make_homeserver(self, reactor, clock):
|
def make_homeserver(self, reactor, clock):
|
||||||
self.hs = self.setup_test_homeserver()
|
self.hs = self.setup_test_homeserver()
|
||||||
self.hs.config.enable_registration = True
|
self.hs.config.registration.enable_registration = True
|
||||||
self.hs.config.registrations_require_3pid = []
|
self.hs.config.registration.registrations_require_3pid = []
|
||||||
self.hs.config.auto_join_rooms = []
|
self.hs.config.registration.auto_join_rooms = []
|
||||||
self.hs.config.captcha.enable_registration_captcha = False
|
self.hs.config.captcha.enable_registration_captcha = False
|
||||||
|
|
||||||
return self.hs
|
return self.hs
|
||||||
|
@ -20,7 +20,7 @@ import inspect
|
|||||||
import logging
|
import logging
|
||||||
import secrets
|
import secrets
|
||||||
import time
|
import time
|
||||||
from typing import Callable, Dict, Iterable, Optional, Tuple, Type, TypeVar, Union
|
from typing import Any, Callable, Dict, Iterable, Optional, Tuple, Type, TypeVar, Union
|
||||||
from unittest.mock import Mock, patch
|
from unittest.mock import Mock, patch
|
||||||
|
|
||||||
from canonicaljson import json
|
from canonicaljson import json
|
||||||
@ -449,7 +449,7 @@ class HomeserverTestCase(TestCase):
|
|||||||
client_ip,
|
client_ip,
|
||||||
)
|
)
|
||||||
|
|
||||||
def setup_test_homeserver(self, *args, **kwargs):
|
def setup_test_homeserver(self, *args: Any, **kwargs: Any) -> HomeServer:
|
||||||
"""
|
"""
|
||||||
Set up the test homeserver, meant to be called by the overridable
|
Set up the test homeserver, meant to be called by the overridable
|
||||||
make_homeserver. It automatically passes through the test class's
|
make_homeserver. It automatically passes through the test class's
|
||||||
|
Loading…
Reference in New Issue
Block a user