Skip to content

Commit 46bd4fb

Browse files
use 2 workers in tests
1 parent d97a7fe commit 46bd4fb

2 files changed

Lines changed: 34 additions & 10 deletions

File tree

synapse/storage/databases/main/registration.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2607,7 +2607,7 @@ def user_delete_access_tokens_for_devices_txn(
26072607
# Print after transaction completes (cache invalidation has happened)
26082608
if tokens_and_devices:
26092609
print(tokens_and_devices)
2610-
print(self.get_user_by_access_token(tokens_and_devices[0][0]))
2610+
print(await self.get_user_by_access_token(tokens_and_devices[0][0]))
26112611
return results
26122612

26132613
async def delete_access_token(self, access_token: str) -> None:

tests/rest/client/test_read_marker.py

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@
2929
from synapse.util.clock import Clock
3030

3131
from tests import unittest
32+
from tests.replication._base import BaseMultiWorkerStreamTestCase
33+
from tests.server import make_request
3234

3335
ONE_HOUR_MS = 3600000
3436
ONE_DAY_MS = ONE_HOUR_MS * 24
3537

3638

37-
class ReadMarkerTestCase(unittest.HomeserverTestCase):
39+
class ReadMarkerTestCase(BaseMultiWorkerStreamTestCase):
3840
servlets = [
3941
login.register_servlets,
4042
register.register_servlets,
@@ -155,12 +157,12 @@ def send_message() -> str:
155157
def test_deleted_device_cannot_set_read_marker_or_send_message(self) -> None:
156158
"""
157159
Test that a deleted device cannot set a read marker or send a message.
160+
This test removes the device on one worker and tries the next requests on another worker.
158161
"""
159162
# Register a user and login with a specific device_id
160163
user_id = self.register_user("testuser", "password")
161164
device_id = "TEST_DEVICE_123"
162165
access_token = self.login("testuser", "password", device_id=device_id)
163-
print("access token: ", access_token)
164166

165167
# Create a room
166168
room_id = self.helper.create_room_as(user_id, tok=access_token)
@@ -171,8 +173,24 @@ def test_deleted_device_cannot_set_read_marker_or_send_message(self) -> None:
171173
)
172174
event_id = message_result["event_id"]
173175

174-
# Delete the device
175-
channel = self.make_request(
176+
# Create two workers
177+
worker1 = self.make_worker_hs(
178+
"synapse.app.generic_worker",
179+
extra_config={"worker_name": "worker1"},
180+
)
181+
worker2 = self.make_worker_hs(
182+
"synapse.app.generic_worker",
183+
extra_config={"worker_name": "worker2"},
184+
)
185+
186+
# Get the sites for the workers
187+
worker1_site = self._hs_to_site[worker1]
188+
worker2_site = self._hs_to_site[worker2]
189+
190+
# Delete the device on worker1
191+
channel = make_request(
192+
self.reactor,
193+
worker1_site,
176194
"DELETE",
177195
f"devices/{device_id}",
178196
access_token=access_token,
@@ -181,7 +199,9 @@ def test_deleted_device_cannot_set_read_marker_or_send_message(self) -> None:
181199
# If UI auth is required, provide it
182200
if channel.code == 401:
183201
session = channel.json_body["session"]
184-
channel = self.make_request(
202+
channel = make_request(
203+
self.reactor,
204+
worker1_site,
185205
"DELETE",
186206
f"devices/{device_id}",
187207
access_token=access_token,
@@ -197,8 +217,10 @@ def test_deleted_device_cannot_set_read_marker_or_send_message(self) -> None:
197217

198218
self.assertEqual(channel.code, 200, channel.result)
199219

200-
# Try to set a read marker with the deleted device's token
201-
channel = self.make_request(
220+
# Try to set a read marker with the deleted device's token on worker2
221+
channel = make_request(
222+
self.reactor,
223+
worker2_site,
202224
"POST",
203225
f"/rooms/{room_id}/read_markers",
204226
content={
@@ -210,8 +232,10 @@ def test_deleted_device_cannot_set_read_marker_or_send_message(self) -> None:
210232
self.assertEqual(channel.code, 401, channel.result)
211233
self.assertEqual(channel.json_body["errcode"], "M_UNKNOWN_TOKEN")
212234

213-
# Try to send a message with the deleted device's token
214-
channel = self.make_request(
235+
# Try to send a message with the deleted device's token on worker2
236+
channel = make_request(
237+
self.reactor,
238+
worker2_site,
215239
"PUT",
216240
f"/rooms/{room_id}/send/m.room.message/test_msg",
217241
content={

0 commit comments

Comments
 (0)