@@ -1377,3 +1377,43 @@ def test_file_upload_false(client, room, user, mod):
1377
1377
extra_headers = {"Content-Disposition" : ('attachment' , {'filename' : filename })},
1378
1378
)
1379
1379
assert r .status_code == 403
1380
+
1381
+
1382
+ def test_remove_all_posts_from_room (client , room , user , mod , no_rate_limit ):
1383
+ for _ in range (256 ):
1384
+ _make_dummy_post (room , user )
1385
+ assert len (room .get_messages_for (user , recent = True )) == 256
1386
+ r = sogs_delete (client , f'/room/{ room .token } /all/{ user .session_id } ' , mod )
1387
+ assert r .status_code == 200
1388
+ assert len (room .get_messages_for (user , recent = True )) == 0
1389
+ assert room .check_unbanned (user )
1390
+
1391
+
1392
+ def test_remove_all_posts_from_room_not_allowed (client , room , user , user2 , no_rate_limit ):
1393
+ for _ in range (256 ):
1394
+ _make_dummy_post (room , user )
1395
+ assert len (room .get_messages_for (user , recent = True )) == 256
1396
+ with pytest .raises (wexc .Forbidden ):
1397
+ sogs_delete (client , f'/room/{ room .token } /all/{ user .session_id } ' , user2 )
1398
+ assert len (room .get_messages_for (user , recent = True )) == 256
1399
+ assert room .check_unbanned (user ) and room .check_unbanned (user2 )
1400
+
1401
+
1402
+ def test_remove_all_posts_from_room_not_allowed_for_user (client , room , mod , user , no_rate_limit ):
1403
+ for _ in range (256 ):
1404
+ _make_dummy_post (room , mod )
1405
+ with pytest .raises (wexc .Forbidden ):
1406
+ sogs_delete (client , f'/room/{ room .token } /all/{ mod .session_id } ' , user )
1407
+ assert len (room .get_messages_for (user , recent = True )) == 256
1408
+ assert room .check_unbanned (user ) and room .check_unbanned (mod )
1409
+
1410
+
1411
+ def test_remove_all_self_posts_from_room (client , room , mod , user , no_rate_limit ):
1412
+ for u in (user , mod ):
1413
+ for _ in range (256 ):
1414
+ _make_dummy_post (room , u )
1415
+ assert len (room .get_messages_for (u , recent = True )) == 256
1416
+ r = sogs_delete (client , f'/room/{ room .token } /all/{ u .session_id } ' , u )
1417
+ assert r .status_code == 200
1418
+ assert len (room .get_messages_for (u , recent = True )) == 0
1419
+ assert room .check_unbanned (u )
0 commit comments