@@ -380,3 +380,76 @@ async def test_export_channel(
380380 assert "error" not in resp
381381 break
382382 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