Skip to content

Commit 076367f

Browse files
committed
test(bookmarks): ✅ update tests for bookmarks
1 parent 360d3a6 commit 076367f

File tree

3 files changed

+58
-1
lines changed

3 files changed

+58
-1
lines changed

pytwitter/rate_limit.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,17 @@ def get_limit(self, auth_type, method="GET"):
126126
regex=re.compile(r"/users/\d+/likes/\d+"),
127127
LIMIT_USER_POST=50,
128128
)
129+
USER_BOOKMARK_TWEET = Endpoint(
130+
resource="/users/:id/bookmarks",
131+
regex=re.compile(r"/users/\d+/bookmarks"),
132+
LIMIT_USER_GET=180,
133+
LIMIT_USER_POST=50,
134+
)
135+
USER_BOOKMARK_TWEET_REMOVE = Endpoint(
136+
resource="/users/:id/bookmarks/:tweet_id",
137+
regex=re.compile(r"/users/\d+/bookmarks/\d+"),
138+
LIMIT_USER_DELETE=50,
139+
)
129140
TWEET_HIDDEN = Endpoint(
130141
resource="/tweets/:id/hidden",
131142
regex=re.compile(r"/tweets/\d+/hidden"),
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"data":[{"created_at":"2021-02-18T17:12:47.000Z","source":"Twitter Web App","id":"1362449997430542337","text":"Honored to be the first developer to be featured in @TwitterDev's love fest 🥰♥️😍 https://t.co/g8TsPoZsij"},{"created_at":"2021-02-26T21:38:43.000Z","source":"Twitter Web App","id":"1365416026435854338","text":"We're so happy for our Official Partner @Brandwatch and their big news. https://t.co/3DwWBNSq0o https://t.co/bDUGbgPkKO"},{"created_at":"2020-08-20T16:41:00.000Z","source":"Twitter Web App","id":"1296487407475462144","text":"Check out this feature on @TwitterDev to learn more about how we're mining social media data to make sense of this evolving #publichealth crisis https://t.co/sIFLXRSvEX."},{"created_at":"2020-08-14T18:55:42.000Z","source":"Twitter for Android","id":"1294346980072624128","text":"I awake from five years of slumber https://t.co/OEPVyAFcfB"},{"created_at":"2020-07-14T21:38:10.000Z","source":"Twitter for iPhone","id":"1283153843367206912","text":"@wongmjane Wish we could tell you more, but I’m only a teapot 👀"}],"meta":{"result_count":5,"next_token":"zldjwdz3w6sba13nbs0mbravfipbtqvbiqplg9h0p4k"}}

tests/apis/test_tweets.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def test_get_tweets(api, helpers):
7070

7171

7272
@responses.activate
73-
def test_like_and_unlike_tweet(api_with_user, helpers):
73+
def test_like_and_unlike_tweet(api_with_user):
7474
user_id, tweet_id = "123456", "10987654321"
7575

7676
responses.add(
@@ -125,6 +125,51 @@ def test_tweet_liking_users(api, helpers):
125125
assert resp_json["includes"]["tweets"][0]["id"] == "1383963809702846470"
126126

127127

128+
@responses.activate
129+
def test_get_user_bookmarks(api_with_user, helpers):
130+
user_id = "2244994945"
131+
tweets_data = helpers.load_json_data(
132+
"testdata/apis/tweet/tweets_by_user_bookmark.json"
133+
)
134+
responses.add(
135+
responses.GET,
136+
url=f"https://api.twitter.com/2/users/{user_id}/bookmarks",
137+
json=tweets_data,
138+
)
139+
140+
resp = api_with_user.get_bookmark_tweets(
141+
user_id=user_id,
142+
max_results=5,
143+
expansions="attachments.media_keys",
144+
media_fields="type,duration_ms",
145+
)
146+
assert len(resp.data) == 5
147+
assert resp.data[0].id == "1362449997430542337"
148+
149+
150+
@responses.activate
151+
def test_user_bookmark_tweet_or_remove_tweet(api_with_user):
152+
user_id, tweet_id = "2244994945", "1228393702244134912"
153+
154+
responses.add(
155+
responses.POST,
156+
url=f"https://api.twitter.com/2/users/{user_id}/bookmarks",
157+
json={"data": {"bookmarked": True}},
158+
)
159+
160+
resp = api_with_user.bookmark_tweet(user_id=user_id, tweet_id=tweet_id)
161+
assert resp["data"]["bookmarked"]
162+
163+
responses.add(
164+
responses.DELETE,
165+
url=f"https://api.twitter.com/2/users/{user_id}/bookmarks/{tweet_id}",
166+
json={"data": {"bookmarked": False}},
167+
)
168+
169+
resp = api_with_user.bookmark_tweet_remove(user_id=user_id, tweet_id=tweet_id)
170+
assert not resp["data"]["bookmarked"]
171+
172+
128173
@responses.activate
129174
def test_get_tweet_quote_tweets(api, helpers):
130175
tweets_data = helpers.load_json_data(

0 commit comments

Comments
 (0)