@@ -380,3 +380,76 @@ async def test_export_channel(
380
380
assert "error" not in resp
381
381
break
382
382
time .sleep (0.5 )
383
+
384
+ async def test_pin_channel (
385
+ self , client : StreamChatAsync , channel : Channel , random_users : List [Dict ]
386
+ ):
387
+ user_id = random_users [0 ]["id" ]
388
+ await channel .add_members ([user_id ])
389
+
390
+ # Pin the channel
391
+ response = await channel .pin (user_id )
392
+ assert response is not None
393
+
394
+ # Query for pinned channels
395
+ response = await client .query_channels (
396
+ {"pinned" : True , "cid" : channel .cid }, user_id = user_id
397
+ )
398
+ assert len (response ["channels" ]) == 1
399
+ assert response ["channels" ][0 ]["channel" ]["cid" ] == channel .cid
400
+
401
+ # Unpin the channel
402
+ response = await channel .unpin (user_id )
403
+ assert response is not None
404
+
405
+ # Query for pinned channels
406
+ response = await client .query_channels (
407
+ {"pinned" : False , "cid" : channel .cid }, user_id = user_id
408
+ )
409
+ assert len (response ["channels" ]) == 1
410
+ assert response ["channels" ][0 ]["channel" ]["cid" ] == channel .cid
411
+
412
+ async def test_archive_channel (
413
+ self , client : StreamChatAsync , channel : Channel , random_users : List [Dict ]
414
+ ):
415
+ user_id = random_users [0 ]["id" ]
416
+ await channel .add_members ([user_id ])
417
+
418
+ # Archive the channel
419
+ response = await channel .archive (user_id )
420
+ assert response is not None
421
+
422
+ # Query for archived channels
423
+ response = await client .query_channels (
424
+ {"archived" : True , "cid" : channel .cid }, user_id = user_id
425
+ )
426
+ assert len (response ["channels" ]) == 1
427
+ assert response ["channels" ][0 ]["channel" ]["cid" ] == channel .cid
428
+
429
+ # Unarchive the channel
430
+ response = await channel .unarchive (user_id )
431
+ assert response is not None
432
+
433
+ # Query for archived channels
434
+ response = await client .query_channels (
435
+ {"archived" : False , "cid" : channel .cid }, user_id = user_id
436
+ )
437
+ assert len (response ["channels" ]) == 1
438
+ assert response ["channels" ][0 ]["channel" ]["cid" ] == channel .cid
439
+
440
+ async def test_update_member_partial (
441
+ self , channel : Channel , random_users : List [Dict ]
442
+ ):
443
+ user_id = random_users [0 ]["id" ]
444
+ await channel .add_members ([user_id ])
445
+
446
+ # Test setting a custom field
447
+ response = await channel .update_member_partial (user_id , to_set = {"hat" : "blue" })
448
+ assert response ["channel_member" ]["hat" ] == "blue"
449
+
450
+ # Test setting a new field while unsetting the previous one
451
+ response = await channel .update_member_partial (
452
+ user_id , to_set = {"color" : "red" }, to_unset = ["hat" ]
453
+ )
454
+ assert response ["channel_member" ]["color" ] == "red"
455
+ assert "hat" not in response ["channel_member" ]
0 commit comments