|
1 | 1 | import datetime |
2 | | -from typing import Dict |
| 2 | +from typing import Dict, List |
3 | 3 |
|
4 | 4 | import pytest |
5 | 5 |
|
@@ -67,6 +67,36 @@ def test_campaign_crud(self, client: StreamChat, random_user: Dict): |
67 | 67 | segment_deleted = client.delete_segment(segment_id=segment_id) |
68 | 68 | assert segment_deleted.is_ok() |
69 | 69 |
|
| 70 | + def test_get_campaign_with_user_pagination(self, client: StreamChat, random_users: List[Dict]): |
| 71 | + # Create a campaign with user_ids |
| 72 | + campaign = client.campaign( |
| 73 | + data={ |
| 74 | + "message_template": { |
| 75 | + "text": "Test message", |
| 76 | + }, |
| 77 | + "user_ids": [user["id"] for user in random_users], |
| 78 | + "sender_id": random_users[0]["id"], |
| 79 | + "name": "test campaign with users", |
| 80 | + } |
| 81 | + ) |
| 82 | + created = campaign.create() |
| 83 | + assert created.is_ok() |
| 84 | + campaign_id = created["campaign"]["id"] |
| 85 | + |
| 86 | + # Test get_campaign with user pagination options |
| 87 | + response = client.get_campaign( |
| 88 | + campaign_id=campaign_id, |
| 89 | + options={"users": {"limit": 2}} # Limit to 2 users per page |
| 90 | + ) |
| 91 | + assert response.is_ok() |
| 92 | + assert "campaign" in response |
| 93 | + assert response["campaign"]["id"] == campaign_id |
| 94 | + assert "users" in response["campaign"] |
| 95 | + assert len(response["campaign"]["users"]) <= 2 # Verify pagination limit worked |
| 96 | + |
| 97 | + # Cleanup |
| 98 | + client.delete_campaign(campaign_id=campaign_id) |
| 99 | + |
70 | 100 | def test_campaign_start_stop(self, client: StreamChat, random_user: Dict): |
71 | 101 | segment = client.create_segment(segment_type=SegmentType.USER) |
72 | 102 | segment_id = segment["segment"]["id"] |
|
0 commit comments