mirror of
https://github.com/element-hq/synapse
synced 2024-09-03 08:30:22 +00:00
Fix circular imports when running specific tests
Before: ``` $ SYNAPSE_POSTGRES=1 SYNAPSE_POSTGRES_USER=postgres SYNAPSE_TEST_LOG_LEVEL=INFO poetry run trial tests.replication.storage.test_events [...] Traceback (most recent call last): File "pypoetry/virtualenvs/matrix-synapse-xCtC9ulO-py3.12/lib/python3.12/site-packages/twisted/trial/runner.py", line 711, in loadByName return self.suiteFactory([self.findByName(name, recurse=recurse)]) File "pypoetry/virtualenvs/matrix-synapse-xCtC9ulO-py3.12/lib/python3.12/site-packages/twisted/trial/runner.py", line 474, in findByName obj = reflect.namedModule(searchName) File "pypoetry/virtualenvs/matrix-synapse-xCtC9ulO-py3.12/lib/python3.12/site-packages/twisted/python/reflect.py", line 156, in namedModule topLevel = __import__(name) File "synapse/tests/replication/storage/test_events.py", line 33, in <module> from synapse.handlers.room import RoomEventSource File "synapse/synapse/handlers/room.py", line 74, in <module> from synapse.rest.admin._base import assert_user_is_admin File "synapse/synapse/rest/__init__.py", line 24, in <module> from synapse.rest import admin File "synapse/synapse/rest/admin/__init__.py", line 41, in <module> from synapse.handlers.pagination import PURGE_HISTORY_ACTION_NAME File "synapse/synapse/handlers/pagination.py", line 30, in <module> from synapse.handlers.room import ShutdownRoomParams, ShutdownRoomResponse builtins.ImportError: cannot import name 'ShutdownRoomParams' from partially initialized module 'synapse.handlers.room' (most likely due to a circular import) (synapse/synapse/handlers/room.py) ```
This commit is contained in:
parent
271a196121
commit
4155e18d76
3 changed files with 61 additions and 58 deletions
|
@ -27,7 +27,6 @@ from synapse.api.constants import Direction, EventTypes, Membership
|
||||||
from synapse.api.errors import SynapseError
|
from synapse.api.errors import SynapseError
|
||||||
from synapse.api.filtering import Filter
|
from synapse.api.filtering import Filter
|
||||||
from synapse.events.utils import SerializeEventConfig
|
from synapse.events.utils import SerializeEventConfig
|
||||||
from synapse.handlers.room import ShutdownRoomParams, ShutdownRoomResponse
|
|
||||||
from synapse.handlers.worker_lock import NEW_EVENT_DURING_PURGE_LOCK_NAME
|
from synapse.handlers.worker_lock import NEW_EVENT_DURING_PURGE_LOCK_NAME
|
||||||
from synapse.logging.opentracing import trace
|
from synapse.logging.opentracing import trace
|
||||||
from synapse.metrics.background_process_metrics import run_as_background_process
|
from synapse.metrics.background_process_metrics import run_as_background_process
|
||||||
|
@ -38,6 +37,8 @@ from synapse.types import (
|
||||||
JsonMapping,
|
JsonMapping,
|
||||||
Requester,
|
Requester,
|
||||||
ScheduledTask,
|
ScheduledTask,
|
||||||
|
ShutdownRoomParams,
|
||||||
|
ShutdownRoomResponse,
|
||||||
StreamKeyType,
|
StreamKeyType,
|
||||||
TaskStatus,
|
TaskStatus,
|
||||||
)
|
)
|
||||||
|
|
|
@ -81,6 +81,8 @@ from synapse.types import (
|
||||||
RoomAlias,
|
RoomAlias,
|
||||||
RoomID,
|
RoomID,
|
||||||
RoomStreamToken,
|
RoomStreamToken,
|
||||||
|
ShutdownRoomParams,
|
||||||
|
ShutdownRoomResponse,
|
||||||
StateMap,
|
StateMap,
|
||||||
StrCollection,
|
StrCollection,
|
||||||
StreamKeyType,
|
StreamKeyType,
|
||||||
|
@ -1780,63 +1782,6 @@ class RoomEventSource(EventSource[RoomStreamToken, EventBase]):
|
||||||
return self.store.get_current_room_stream_token_for_room_id(room_id)
|
return self.store.get_current_room_stream_token_for_room_id(room_id)
|
||||||
|
|
||||||
|
|
||||||
class ShutdownRoomParams(TypedDict):
|
|
||||||
"""
|
|
||||||
Attributes:
|
|
||||||
requester_user_id:
|
|
||||||
User who requested the action. Will be recorded as putting the room on the
|
|
||||||
blocking list.
|
|
||||||
new_room_user_id:
|
|
||||||
If set, a new room will be created with this user ID
|
|
||||||
as the creator and admin, and all users in the old room will be
|
|
||||||
moved into that room. If not set, no new room will be created
|
|
||||||
and the users will just be removed from the old room.
|
|
||||||
new_room_name:
|
|
||||||
A string representing the name of the room that new users will
|
|
||||||
be invited to. Defaults to `Content Violation Notification`
|
|
||||||
message:
|
|
||||||
A string containing the first message that will be sent as
|
|
||||||
`new_room_user_id` in the new room. Ideally this will clearly
|
|
||||||
convey why the original room was shut down.
|
|
||||||
Defaults to `Sharing illegal content on this server is not
|
|
||||||
permitted and rooms in violation will be blocked.`
|
|
||||||
block:
|
|
||||||
If set to `true`, this room will be added to a blocking list,
|
|
||||||
preventing future attempts to join the room. Defaults to `false`.
|
|
||||||
purge:
|
|
||||||
If set to `true`, purge the given room from the database.
|
|
||||||
force_purge:
|
|
||||||
If set to `true`, the room will be purged from database
|
|
||||||
even if there are still users joined to the room.
|
|
||||||
"""
|
|
||||||
|
|
||||||
requester_user_id: Optional[str]
|
|
||||||
new_room_user_id: Optional[str]
|
|
||||||
new_room_name: Optional[str]
|
|
||||||
message: Optional[str]
|
|
||||||
block: bool
|
|
||||||
purge: bool
|
|
||||||
force_purge: bool
|
|
||||||
|
|
||||||
|
|
||||||
class ShutdownRoomResponse(TypedDict):
|
|
||||||
"""
|
|
||||||
Attributes:
|
|
||||||
kicked_users: An array of users (`user_id`) that were kicked.
|
|
||||||
failed_to_kick_users:
|
|
||||||
An array of users (`user_id`) that that were not kicked.
|
|
||||||
local_aliases:
|
|
||||||
An array of strings representing the local aliases that were
|
|
||||||
migrated from the old room to the new.
|
|
||||||
new_room_id: A string representing the room ID of the new room.
|
|
||||||
"""
|
|
||||||
|
|
||||||
kicked_users: List[str]
|
|
||||||
failed_to_kick_users: List[str]
|
|
||||||
local_aliases: List[str]
|
|
||||||
new_room_id: Optional[str]
|
|
||||||
|
|
||||||
|
|
||||||
class RoomShutdownHandler:
|
class RoomShutdownHandler:
|
||||||
DEFAULT_MESSAGE = (
|
DEFAULT_MESSAGE = (
|
||||||
"Sharing illegal content on this server is not permitted and rooms in"
|
"Sharing illegal content on this server is not permitted and rooms in"
|
||||||
|
|
|
@ -1279,3 +1279,60 @@ class ScheduledTask:
|
||||||
result: Optional[JsonMapping]
|
result: Optional[JsonMapping]
|
||||||
# Optional error that should be assigned a value when the status is FAILED
|
# Optional error that should be assigned a value when the status is FAILED
|
||||||
error: Optional[str]
|
error: Optional[str]
|
||||||
|
|
||||||
|
|
||||||
|
class ShutdownRoomParams(TypedDict):
|
||||||
|
"""
|
||||||
|
Attributes:
|
||||||
|
requester_user_id:
|
||||||
|
User who requested the action. Will be recorded as putting the room on the
|
||||||
|
blocking list.
|
||||||
|
new_room_user_id:
|
||||||
|
If set, a new room will be created with this user ID
|
||||||
|
as the creator and admin, and all users in the old room will be
|
||||||
|
moved into that room. If not set, no new room will be created
|
||||||
|
and the users will just be removed from the old room.
|
||||||
|
new_room_name:
|
||||||
|
A string representing the name of the room that new users will
|
||||||
|
be invited to. Defaults to `Content Violation Notification`
|
||||||
|
message:
|
||||||
|
A string containing the first message that will be sent as
|
||||||
|
`new_room_user_id` in the new room. Ideally this will clearly
|
||||||
|
convey why the original room was shut down.
|
||||||
|
Defaults to `Sharing illegal content on this server is not
|
||||||
|
permitted and rooms in violation will be blocked.`
|
||||||
|
block:
|
||||||
|
If set to `true`, this room will be added to a blocking list,
|
||||||
|
preventing future attempts to join the room. Defaults to `false`.
|
||||||
|
purge:
|
||||||
|
If set to `true`, purge the given room from the database.
|
||||||
|
force_purge:
|
||||||
|
If set to `true`, the room will be purged from database
|
||||||
|
even if there are still users joined to the room.
|
||||||
|
"""
|
||||||
|
|
||||||
|
requester_user_id: Optional[str]
|
||||||
|
new_room_user_id: Optional[str]
|
||||||
|
new_room_name: Optional[str]
|
||||||
|
message: Optional[str]
|
||||||
|
block: bool
|
||||||
|
purge: bool
|
||||||
|
force_purge: bool
|
||||||
|
|
||||||
|
|
||||||
|
class ShutdownRoomResponse(TypedDict):
|
||||||
|
"""
|
||||||
|
Attributes:
|
||||||
|
kicked_users: An array of users (`user_id`) that were kicked.
|
||||||
|
failed_to_kick_users:
|
||||||
|
An array of users (`user_id`) that that were not kicked.
|
||||||
|
local_aliases:
|
||||||
|
An array of strings representing the local aliases that were
|
||||||
|
migrated from the old room to the new.
|
||||||
|
new_room_id: A string representing the room ID of the new room.
|
||||||
|
"""
|
||||||
|
|
||||||
|
kicked_users: List[str]
|
||||||
|
failed_to_kick_users: List[str]
|
||||||
|
local_aliases: List[str]
|
||||||
|
new_room_id: Optional[str]
|
||||||
|
|
Loading…
Reference in a new issue