31
31
from synapse .events import EventBase
32
32
from synapse .events .snapshot import EventContext
33
33
from synapse .federation .federation_base import event_from_pdu_json
34
- from synapse .handlers .sync import SyncConfig , SyncResult , SyncVersion
34
+ from synapse .handlers .sync import SyncConfig , SyncRequestKey , SyncResult , SyncVersion
35
35
from synapse .rest import admin
36
36
from synapse .rest .client import knock , login , room
37
37
from synapse .server import HomeServer
41
41
import tests .unittest
42
42
import tests .utils
43
43
44
+ _request_key = 0
45
+
46
+
47
+ def generate_request_key () -> SyncRequestKey :
48
+ global _request_key
49
+ _request_key += 1
50
+ return ("request_key" , _request_key )
51
+
44
52
45
53
class SyncTestCase (tests .unittest .HomeserverTestCase ):
46
54
"""Tests Sync Handler."""
@@ -77,6 +85,7 @@ def test_wait_for_sync_for_user_auth_blocking(self) -> None:
77
85
requester ,
78
86
sync_config ,
79
87
sync_version = SyncVersion .SYNC_V2 ,
88
+ request_key = generate_request_key (),
80
89
)
81
90
)
82
91
@@ -87,6 +96,7 @@ def test_wait_for_sync_for_user_auth_blocking(self) -> None:
87
96
requester ,
88
97
sync_config ,
89
98
sync_version = SyncVersion .SYNC_V2 ,
99
+ request_key = generate_request_key (),
90
100
),
91
101
ResourceLimitError ,
92
102
)
@@ -102,6 +112,7 @@ def test_wait_for_sync_for_user_auth_blocking(self) -> None:
102
112
requester ,
103
113
sync_config ,
104
114
sync_version = SyncVersion .SYNC_V2 ,
115
+ request_key = generate_request_key (),
105
116
),
106
117
ResourceLimitError ,
107
118
)
@@ -124,6 +135,7 @@ def test_unknown_room_version(self) -> None:
124
135
requester ,
125
136
sync_config = generate_sync_config (user , device_id = "dev" ),
126
137
sync_version = SyncVersion .SYNC_V2 ,
138
+ request_key = generate_request_key (),
127
139
)
128
140
)
129
141
@@ -157,6 +169,7 @@ def test_unknown_room_version(self) -> None:
157
169
requester ,
158
170
sync_config = generate_sync_config (user ),
159
171
sync_version = SyncVersion .SYNC_V2 ,
172
+ request_key = generate_request_key (),
160
173
)
161
174
)
162
175
self .assertIn (joined_room , [r .room_id for r in result .joined ])
@@ -169,6 +182,7 @@ def test_unknown_room_version(self) -> None:
169
182
requester ,
170
183
sync_config = generate_sync_config (user , device_id = "dev" ),
171
184
sync_version = SyncVersion .SYNC_V2 ,
185
+ request_key = generate_request_key (),
172
186
since_token = initial_result .next_batch ,
173
187
)
174
188
)
@@ -200,6 +214,7 @@ def test_unknown_room_version(self) -> None:
200
214
requester ,
201
215
sync_config = generate_sync_config (user ),
202
216
sync_version = SyncVersion .SYNC_V2 ,
217
+ request_key = generate_request_key (),
203
218
)
204
219
)
205
220
self .assertNotIn (joined_room , [r .room_id for r in result .joined ])
@@ -212,6 +227,7 @@ def test_unknown_room_version(self) -> None:
212
227
requester ,
213
228
sync_config = generate_sync_config (user , device_id = "dev" ),
214
229
sync_version = SyncVersion .SYNC_V2 ,
230
+ request_key = generate_request_key (),
215
231
since_token = initial_result .next_batch ,
216
232
)
217
233
)
@@ -254,6 +270,7 @@ def test_ban_wins_race_with_join(self) -> None:
254
270
create_requester (owner ),
255
271
generate_sync_config (owner ),
256
272
sync_version = SyncVersion .SYNC_V2 ,
273
+ request_key = generate_request_key (),
257
274
)
258
275
)
259
276
self .assertEqual (len (alice_sync_result .joined ), 1 )
@@ -277,6 +294,7 @@ def test_ban_wins_race_with_join(self) -> None:
277
294
eve_requester ,
278
295
eve_sync_config ,
279
296
sync_version = SyncVersion .SYNC_V2 ,
297
+ request_key = generate_request_key (),
280
298
)
281
299
)
282
300
@@ -295,6 +313,7 @@ def test_ban_wins_race_with_join(self) -> None:
295
313
eve_requester ,
296
314
eve_sync_config ,
297
315
sync_version = SyncVersion .SYNC_V2 ,
316
+ request_key = generate_request_key (),
298
317
since_token = eve_sync_after_ban .next_batch ,
299
318
)
300
319
)
@@ -307,6 +326,7 @@ def test_ban_wins_race_with_join(self) -> None:
307
326
eve_requester ,
308
327
eve_sync_config ,
309
328
sync_version = SyncVersion .SYNC_V2 ,
329
+ request_key = generate_request_key (),
310
330
since_token = None ,
311
331
)
312
332
)
@@ -341,6 +361,7 @@ def test_state_includes_changes_on_forks(self) -> None:
341
361
alice_requester ,
342
362
generate_sync_config (alice ),
343
363
sync_version = SyncVersion .SYNC_V2 ,
364
+ request_key = generate_request_key (),
344
365
)
345
366
)
346
367
last_room_creation_event_id = (
@@ -369,6 +390,7 @@ def test_state_includes_changes_on_forks(self) -> None:
369
390
),
370
391
),
371
392
sync_version = SyncVersion .SYNC_V2 ,
393
+ request_key = generate_request_key (),
372
394
since_token = initial_sync_result .next_batch ,
373
395
)
374
396
)
@@ -414,6 +436,7 @@ def test_state_includes_changes_on_forks_when_events_excluded(self) -> None:
414
436
alice_requester ,
415
437
generate_sync_config (alice ),
416
438
sync_version = SyncVersion .SYNC_V2 ,
439
+ request_key = generate_request_key (),
417
440
)
418
441
)
419
442
last_room_creation_event_id = (
@@ -452,6 +475,7 @@ def test_state_includes_changes_on_forks_when_events_excluded(self) -> None:
452
475
),
453
476
),
454
477
sync_version = SyncVersion .SYNC_V2 ,
478
+ request_key = generate_request_key (),
455
479
since_token = initial_sync_result .next_batch ,
456
480
)
457
481
)
@@ -498,6 +522,7 @@ def test_state_includes_changes_on_long_lived_forks(self) -> None:
498
522
alice_requester ,
499
523
generate_sync_config (alice ),
500
524
sync_version = SyncVersion .SYNC_V2 ,
525
+ request_key = generate_request_key (),
501
526
)
502
527
)
503
528
last_room_creation_event_id = (
@@ -523,6 +548,7 @@ def test_state_includes_changes_on_long_lived_forks(self) -> None:
523
548
),
524
549
),
525
550
sync_version = SyncVersion .SYNC_V2 ,
551
+ request_key = generate_request_key (),
526
552
since_token = initial_sync_result .next_batch ,
527
553
)
528
554
)
@@ -553,6 +579,7 @@ def test_state_includes_changes_on_long_lived_forks(self) -> None:
553
579
),
554
580
),
555
581
sync_version = SyncVersion .SYNC_V2 ,
582
+ request_key = generate_request_key (),
556
583
since_token = incremental_sync .next_batch ,
557
584
)
558
585
)
@@ -615,6 +642,7 @@ def test_state_includes_changes_on_ungappy_syncs(self) -> None:
615
642
alice_requester ,
616
643
generate_sync_config (alice ),
617
644
sync_version = SyncVersion .SYNC_V2 ,
645
+ request_key = generate_request_key (),
618
646
)
619
647
)
620
648
last_room_creation_event_id = (
@@ -639,6 +667,7 @@ def test_state_includes_changes_on_ungappy_syncs(self) -> None:
639
667
),
640
668
),
641
669
sync_version = SyncVersion .SYNC_V2 ,
670
+ request_key = generate_request_key (),
642
671
)
643
672
)
644
673
room_sync = initial_sync_result .joined [0 ]
@@ -660,6 +689,7 @@ def test_state_includes_changes_on_ungappy_syncs(self) -> None:
660
689
alice_requester ,
661
690
generate_sync_config (alice ),
662
691
sync_version = SyncVersion .SYNC_V2 ,
692
+ request_key = generate_request_key (),
663
693
since_token = initial_sync_result .next_batch ,
664
694
)
665
695
)
@@ -713,6 +743,7 @@ def test_archived_rooms_do_not_include_state_after_leave(
713
743
bob_requester ,
714
744
generate_sync_config (bob ),
715
745
sync_version = SyncVersion .SYNC_V2 ,
746
+ request_key = generate_request_key (),
716
747
)
717
748
)
718
749
@@ -744,6 +775,7 @@ def test_archived_rooms_do_not_include_state_after_leave(
744
775
bob , filter_collection = FilterCollection (self .hs , filter_dict )
745
776
),
746
777
sync_version = SyncVersion .SYNC_V2 ,
778
+ request_key = generate_request_key (),
747
779
since_token = None if initial_sync else initial_sync_result .next_batch ,
748
780
)
749
781
).archived [0 ]
@@ -839,6 +871,7 @@ async def _check_sigs_and_hash_for_pulled_events_and_fetch(
839
871
create_requester (user ),
840
872
generate_sync_config (user ),
841
873
sync_version = SyncVersion .SYNC_V2 ,
874
+ request_key = generate_request_key (),
842
875
)
843
876
)
844
877
event_ids = []
@@ -887,6 +920,7 @@ async def _check_sigs_and_hash_for_pulled_events_and_fetch(
887
920
create_requester (user2 ),
888
921
generate_sync_config (user2 ),
889
922
sync_version = SyncVersion .SYNC_V2 ,
923
+ request_key = generate_request_key (),
890
924
)
891
925
)
892
926
priv_event_ids = []
@@ -909,7 +943,10 @@ def test_push_rules_with_bad_account_data(self) -> None:
909
943
910
944
sync_result : SyncResult = self .get_success (
911
945
self .sync_handler .wait_for_sync_for_user (
912
- create_requester (user ), generate_sync_config (user )
946
+ create_requester (user ),
947
+ generate_sync_config (user ),
948
+ sync_version = SyncVersion .SYNC_V2 ,
949
+ request_key = generate_request_key (),
913
950
)
914
951
)
915
952
@@ -923,9 +960,6 @@ def test_push_rules_with_bad_account_data(self) -> None:
923
960
self .fail ("No push rules found" )
924
961
925
962
926
- _request_key = 0
927
-
928
-
929
963
def generate_sync_config (
930
964
user_id : str ,
931
965
device_id : Optional [str ] = "device_id" ,
@@ -942,12 +976,9 @@ def generate_sync_config(
942
976
if filter_collection is None :
943
977
filter_collection = Filtering (Mock ()).DEFAULT_FILTER_COLLECTION
944
978
945
- global _request_key
946
- _request_key += 1
947
979
return SyncConfig (
948
980
user = UserID .from_string (user_id ),
949
981
filter_collection = filter_collection ,
950
982
is_guest = False ,
951
- request_key = ("request_key" , _request_key ),
952
983
device_id = device_id ,
953
984
)
0 commit comments