17
17
from typing import Dict , List , Set , cast
18
18
from unittest .mock import ANY , Mock , call
19
19
20
- from twisted .internet import defer
21
20
from twisted .test .proto_helpers import MemoryReactor
22
21
from twisted .web .resource import Resource
23
22
@@ -110,24 +109,24 @@ def prepare(self, reactor: MemoryReactor, clock: Clock, hs: HomeServer) -> None:
110
109
self .event_source = hs .get_event_sources ().sources .typing
111
110
112
111
self .datastore = hs .get_datastores ().main
112
+
113
113
self .datastore .get_destination_retry_timings = Mock (
114
114
return_value = make_awaitable (None )
115
115
)
116
116
117
- self .datastore .get_device_updates_by_remote = Mock (
117
+ self .datastore .get_device_updates_by_remote = Mock ( # type: ignore[assignment]
118
118
return_value = make_awaitable ((0 , []))
119
119
)
120
120
121
- self .datastore .get_destination_last_successful_stream_ordering = Mock (
121
+ self .datastore .get_destination_last_successful_stream_ordering = Mock ( # type: ignore[assignment]
122
122
return_value = make_awaitable (None )
123
123
)
124
124
125
- def get_received_txn_response (* args ):
126
- return defer .succeed (None )
127
-
128
- self .datastore .get_received_txn_response = get_received_txn_response
125
+ self .datastore .get_received_txn_response = Mock ( # type: ignore[assignment]
126
+ return_value = make_awaitable (None )
127
+ )
129
128
130
- self .room_members = []
129
+ self .room_members : List [ UserID ] = []
131
130
132
131
async def check_user_in_room (room_id : str , requester : Requester ) -> None :
133
132
if requester .user .to_string () not in [
@@ -136,47 +135,54 @@ async def check_user_in_room(room_id: str, requester: Requester) -> None:
136
135
raise AuthError (401 , "User is not in the room" )
137
136
return None
138
137
139
- hs .get_auth ().check_user_in_room = check_user_in_room
138
+ hs .get_auth ().check_user_in_room = Mock ( # type: ignore[assignment]
139
+ side_effect = check_user_in_room
140
+ )
140
141
141
142
async def check_host_in_room (room_id : str , server_name : str ) -> bool :
142
143
return room_id == ROOM_ID
143
144
144
- hs .get_event_auth_handler ().is_host_in_room = check_host_in_room
145
+ hs .get_event_auth_handler ().is_host_in_room = Mock ( # type: ignore[assignment]
146
+ side_effect = check_host_in_room
147
+ )
145
148
146
- async def get_current_hosts_in_room (room_id : str ):
149
+ async def get_current_hosts_in_room (room_id : str ) -> Set [ str ] :
147
150
return {member .domain for member in self .room_members }
148
151
149
- hs .get_storage_controllers ().state .get_current_hosts_in_room = (
150
- get_current_hosts_in_room
152
+ hs .get_storage_controllers ().state .get_current_hosts_in_room = Mock ( # type: ignore[assignment]
153
+ side_effect = get_current_hosts_in_room
151
154
)
152
155
153
- hs .get_storage_controllers ().state .get_current_hosts_in_room_or_partial_state_approximation = (
154
- get_current_hosts_in_room
156
+ hs .get_storage_controllers ().state .get_current_hosts_in_room_or_partial_state_approximation = Mock ( # type: ignore[assignment]
157
+ side_effect = get_current_hosts_in_room
155
158
)
156
159
157
- async def get_users_in_room (room_id : str ):
160
+ async def get_users_in_room (room_id : str ) -> Set [ str ] :
158
161
return {str (u ) for u in self .room_members }
159
162
160
- self .datastore .get_users_in_room = get_users_in_room
163
+ self .datastore .get_users_in_room = Mock ( side_effect = get_users_in_room )
161
164
162
- self .datastore .get_user_directory_stream_pos = Mock (
165
+ self .datastore .get_user_directory_stream_pos = Mock ( # type: ignore[assignment]
163
166
side_effect = (
164
- # we deliberately return a non-None stream pos to avoid doing an initial_spam
167
+ # we deliberately return a non-None stream pos to avoid
168
+ # doing an initial_sync
165
169
lambda : make_awaitable (1 )
166
170
)
167
171
)
168
172
169
- self .datastore .get_partial_current_state_deltas = Mock (return_value = (0 , None ))
173
+ self .datastore .get_partial_current_state_deltas = Mock (return_value = (0 , None )) # type: ignore[assignment]
170
174
171
- self .datastore .get_to_device_stream_token = lambda : 0
172
- self .datastore .get_new_device_msgs_for_remote = (
173
- lambda * args , ** kargs : make_awaitable (([], 0 ))
175
+ self .datastore .get_to_device_stream_token = Mock ( # type: ignore[assignment]
176
+ side_effect = lambda : 0
177
+ )
178
+ self .datastore .get_new_device_msgs_for_remote = Mock ( # type: ignore[assignment]
179
+ side_effect = lambda * args , ** kargs : make_awaitable (([], 0 ))
174
180
)
175
- self .datastore .delete_device_msgs_for_remote = (
176
- lambda * args , ** kargs : make_awaitable (None )
181
+ self .datastore .delete_device_msgs_for_remote = Mock ( # type: ignore[assignment]
182
+ side_effect = lambda * args , ** kargs : make_awaitable (None )
177
183
)
178
- self .datastore .set_received_txn_response = (
179
- lambda * args , ** kwargs : make_awaitable (None )
184
+ self .datastore .set_received_txn_response = Mock ( # type: ignore[assignment]
185
+ side_effect = lambda * args , ** kwargs : make_awaitable (None )
180
186
)
181
187
182
188
def test_started_typing_local (self ) -> None :
0 commit comments