Implement notifications_unread_count, clean up docstrings

pull/397/head
halcy 2025-02-15 14:44:03 +02:00
rodzic a1fe0289a2
commit ea87feade0
13 zmienionych plików z 146 dodań i 85 usunięć

Wyświetl plik

@ -33,6 +33,7 @@ v2.0.0 (IN PROGRESS)
* Add `account_delete_avatar` and `account_delete_header`
* Add `statuses` method to retrieve multiple statuses at once
* Add automatic conversion of datetime objects to flake IDs for min/max/since_id fields where appropriate
* Add `notifications_unread_count`
v1.8.1
------

Wyświetl plik

@ -305,8 +305,6 @@ class Mastodon(Internals):
"""
Follow a remote user with username given in username@domain form.
Returns a :ref:`account dict <account dict>`.
Deprecated - avoid using this. Currently uses a backwards compat implementation that may or may not work properly.
"""
try:

Wyświetl plik

@ -32,8 +32,6 @@ class Mastodon(Internals):
* Set `invited_by` to an account id to get only accounts invited by this user.
* Set `role_ids` to a list of role IDs to get only accounts with those roles.
Returns a list of :ref:`admin account dicts <admin account dicts>`.
Pagination on this is a bit weird, so I would recommend not doing that and instead manually fetching.
"""
if role_ids is not None:
@ -107,8 +105,6 @@ class Mastodon(Internals):
Deprecated in Mastodon version 3.5.0.
Returns a list of :ref:`admin account dicts <admin account dicts>`.
Pagination on this is a bit weird, so I would recommend not doing that and instead manually fetching.
"""
params = self.__generate_params(locals(), ['remote', 'status', 'staff_only'], dateconv=True)
@ -135,7 +131,7 @@ class Mastodon(Internals):
@api_version("2.9.1", "2.9.1")
def admin_account(self, id: Union[Account, AdminAccount, IdType]) -> AdminAccount:
"""
Fetches a single :ref:`admin account dict <admin account dict>` for the user with the given id.
Fetches a single admin account for the user with the given id.
"""
id = self.__unpack_id(id)
return self.__api_request('GET', f'/api/v1/admin/accounts/{id}')
@ -256,8 +252,6 @@ class Mastodon(Internals):
Set `resolved` to True to search for resolved reports. `account_id` and `target_account_id`
can be used to get reports filed by or about a specific user.
Returns a list of :ref:`report dicts <report dicts>`.
"""
if account_id is not None:
account_id = self.__unpack_id(account_id)
@ -357,7 +351,7 @@ class Mastodon(Internals):
Provide an `id` to fetch a specific domain block based on its database id.
Returns a list of :ref:`admin domain block dicts <admin domain block dicts>`, raises a `MastodonAPIError` if the specified block does not exist.
Raises a `MastodonAPIError` if the specified block does not exist.
"""
if id is not None:
id = self.__unpack_id(id)
@ -385,8 +379,6 @@ class Mastodon(Internals):
`private_comment` sets a private admin comment for the domain.
`public_comment` sets a publicly available comment for this domain, which will be available to local users and may be available to everyone depending on your settings.
`obfuscate` censors some part of the domain name. Useful if the domain name contains unwanted words like slurs.
Returns the new domain block as an :ref:`admin domain block dict <admin domain block dict>`.
"""
if domain is None:
raise MastodonIllegalArgumentError("Must provide a domain to block a domain")
@ -414,7 +406,7 @@ class Mastodon(Internals):
`public_comment` sets a publicly available comment for this domain, which will be available to local users and may be available to everyone depending on your settings.
`obfuscate` censors some part of the domain name. Useful if the domain name contains unwanted words like slurs.
Returns the modified domain block as an :ref:`admin domain block dict <admin domain block dict>`, raises a `MastodonAPIError` if the specified block does not exist.
Raises a `MastodonAPIError` if the specified block does not exist.
"""
if id is None:
raise MastodonIllegalArgumentError("Must provide an id to modify the existing moderation actions on a given domain.")
@ -465,8 +457,6 @@ class Mastodon(Internals):
There is currently no way to get tag IDs implemented in Mastodon.py, because the Mastodon public API does not implement one. This will be fixed in a future
release.
Returns a list of :ref:`admin measure dicts <admin measure dicts>`.
"""
params_init = locals()
keys = []
@ -516,8 +506,6 @@ class Mastodon(Internals):
There is currently no way to get tag IDs implemented in Mastodon.py, because the Mastodon public API does not implement one. This will be fixed in a future
release.
Returns a list of :ref:`admin dimension dicts <admin dimension dicts>`.
"""
params_init = locals()
keys = []

Wyświetl plik

@ -16,7 +16,7 @@ class Mastodon(Internals):
def featured_tags(self) -> NonPaginatableList[FeaturedTag]:
"""
Return the hashtags the logged-in user has set to be featured on
their profile as a list of :ref:`featured tag dicts <featured tag dicts>`.
their profile.
"""
return self.__api_request('GET', '/api/v1/featured_tags')

Wyświetl plik

@ -163,8 +163,6 @@ class Mastodon(Internals):
def announcements(self) -> NonPaginatableList[Announcement]:
"""
Fetch currently active announcements.
Returns a list of :ref:`announcement dicts <announcement dicts>`.
"""
return self.__api_request('GET', '/api/v1/announcements')

Wyświetl plik

@ -49,14 +49,13 @@ class Mastodon(Internals):
Starting with Mastodon 3.2.0, `thumbnail` can be specified in the same way as `media_file`
to upload a custom thumbnail image for audio and video files.
Returns a :ref:`media dict <media dict>`. This contains the id that can be used in
status_post to attach the media file to a toot.
When using the v2 API (post Mastodon version 3.1.4), the `url` in the
returned dict will be `null`, since attachments are processed
asynchronously. You can fetch an updated dict using `media`. Pass
"synchronous" to emulate the old behaviour. Not recommended, inefficient
and deprecated, will eat your API quota, you know the deal.
The returned value (or its id) can be used in a status post as the `media_ids` parameter.
"""
files = {'file': self.__load_media_file(
media_file, mime_type, file_name)}

Wyświetl plik

@ -3,7 +3,7 @@ from mastodon.errors import MastodonIllegalArgumentError
from mastodon.utility import api_version
from mastodon.internals import Mastodon as Internals
from mastodon.return_types import Notification, IdType, PaginatableList, Account
from mastodon.return_types import Notification, IdType, PaginatableList, Account, UnreadNotificationsCount
from typing import Union, Optional, List
class Mastodon(Internals):
@ -36,8 +36,6 @@ class Mastodon(Internals):
`exclude_types` to all but mentions.
Can be passed an `id` to fetch a single notification.
Returns a list of :ref:`notification dicts <notification dicts>`.
"""
if mentions_only is not None:
if exclude_types is None and types is None:
@ -60,6 +58,14 @@ class Mastodon(Internals):
id = self.__unpack_id(id)
return self.__api_request('GET', f"/api/v1/notifications/{id}")
# Implement GET /api/v1/notifications/unread_count HTTP/1.1
@api_version("4.3.0", "4.3.0")
def notifications_unread_count(self) -> UnreadNotificationsCount:
"""
Fetch the number of unread notifications for the logged-in user.
"""
return self.__api_request('GET', '/api/v1/notifications/unread_count')
###
# Writing data: Notifications
###

Wyświetl plik

@ -61,8 +61,6 @@ class Mastodon(Internals):
* `update_events` controls whether you receive events when a status that the logged in user has boosted has been edited.
* `admin_sign_up_events` controls whether you receive events when a new user signs up.
* `admin_report_events` controls whether you receive events when a new report is received.
Returns a :ref:`push subscription dict <push subscription dict>`.
"""
if not policy in ['all', 'none', 'follower', 'followed']:
raise MastodonIllegalArgumentError("Valid values for policy are 'all', 'none', 'follower' or 'followed'.")

Wyświetl plik

@ -42,7 +42,7 @@ class Mastodon(Internals):
those that have been reviewed by moderators. It is on by default. When using the
v1 search API (pre 2.4.1), it is ignored.
Will use search_v1 (no tag dicts in return values) on Mastodon versions before
Will use search_v1 (no tags in return values) on Mastodon versions before
2.4.1), search_v2 otherwise. Parameters other than resolve are only available
on Mastodon 2.8.0 or above - this function will throw a MastodonVersionError
if you try to use them on versions before that. Note that the cached version
@ -58,9 +58,9 @@ class Mastodon(Internals):
def search_v1(self, q: str, resolve: bool = False) -> Search:
"""
Identical to `search_v2()`, except in that it does not return
tags as :ref:`hashtag dicts <hashtag dicts>`.
tags as objects, and doesn't support most of the new parameters.
Returns a :ref:`search result dict <search result dict>`.
Should really not be used anymore.
"""
params = self.__generate_params(locals())
if not resolve:
@ -73,12 +73,10 @@ class Mastodon(Internals):
min_id: Optional[IdType] = None, max_id: Optional[IdType] = None,
exclude_unreviewed: bool = True) -> SearchV2:
"""
Identical to `search_v1()`, except in that it returns tags as
:ref:`hashtag dicts <hashtag dicts>`, has more parameters, and resolves by default.
Identical to `search_v1()`, except in that it returns tags as objects,
has more parameters, and resolves by default.
For more details documentation, please see `search()`
Returns a :ref:`search result dict <search result dict>`.
"""
self.__ensure_search_params_acceptable(account_id, offset, min_id, max_id)
params = self.__generate_params(locals(), dateconv=True)

Wyświetl plik

@ -45,7 +45,7 @@ class Mastodon(Internals):
Does not require authentication for publicly visible statuses.
This function is deprecated as of 3.0.0 and the endpoint does not
exist anymore - you should just use the "card" field of the status dicts
exist anymore - you should just use the "card" field of the status
instead. Mastodon.py will try to mimic the old behaviour, but this
is somewhat inefficient and not guaranteed to be the case forever.
"""
@ -210,7 +210,7 @@ class Mastodon(Internals):
`media_ids` should be a list. (If it's not, the function will turn it
into one.) It can contain up to four pieces of media (uploaded via
:ref:`media_post() <media_post()>`). `media_ids` can also be the `media dicts`_ returned
:ref:`media_post() <media_post()>`). `media_ids` can also be the objects returned
by :ref:`media_post() <media_post()>` - they are unpacked automatically.
The `sensitive` boolean decides whether or not media attached to the post
@ -245,7 +245,7 @@ class Mastodon(Internals):
Pass a datetime as `scheduled_at` to schedule the toot for a specific time
(the time must be at least 5 minutes into the future). If this is passed,
status_post returns a :ref:`scheduled status dict <scheduled status dict>` instead.
status_post returns a `ScheduledStatus` instead.
Pass `poll` to attach a poll to the status. An appropriate object can be
constructed using :ref:`make_poll() <make_poll()>` . Note that as of Mastodon version
@ -262,7 +262,7 @@ class Mastodon(Internals):
**Specific to "fedibird" feature set:**: The `quote_id` parameter is
a non-standard extension that specifies the id of a quoted status.
Returns a :ref:`status dict <status dict>` with the new status.
Returns the new status.
"""
return self.__status_internal(
status,
@ -344,7 +344,7 @@ class Mastodon(Internals):
the users that are being replied to the status text and retains
CW and visibility if not explicitly overridden.
Note that `to_status` should be a :ref:`status dict <status dict>` and not an ID.
Note that `to_status` must be a `Status` and not just an ID.
Set `untag` to True if you want the reply to only go to the user you
are replying to, removing every other mentioned user from the

Wyświetl plik

@ -9638,7 +9638,7 @@
{
"name": "Unread Notifications Count",
"python_name": "UnreadNotificationsCount",
"func_call": "TODO_TO_BE_IMPLEMENTED",
"func_call": "mastodon.notifications_unread_count()",
"func_call_real": null,
"func_call_additional": null,
"func_alternate_acc": null,

Wyświetl plik

@ -20,11 +20,11 @@ interactions:
uri: http://localhost:3000/api/v1/statuses
response:
body:
string: '{"id":"113998808834483931","created_at":"2025-02-13T21:56:17.383Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/113998808834483931","url":"http://localhost:3000/@admin/113998808834483931","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003e\u003cspan
string: '{"id":"114007923875989611","created_at":"2025-02-15T12:34:21.888Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/114007923875989611","url":"http://localhost:3000/@admin/114007923875989611","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"content":"\u003cp\u003e\u003cspan
class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"http://localhost:3000/@mastodonpy_test\"
class=\"u-url mention\"\u003e@\u003cspan\u003emastodonpy_test\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e
hello!\u003c/p\u003e","filtered":[],"reblog":null,"application":{"name":"Mastodon.py
test suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2025-02-13","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}'
test suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}'
headers:
Cache-Control:
- private, no-store
@ -35,14 +35,14 @@ interactions:
Content-Type:
- application/json; charset=utf-8
ETag:
- W/"09224f7d2e004269da1d638962ce859c"
- W/"0d2682a94ea5b77daa55e5700d2a1639"
Referrer-Policy:
- strict-origin-when-cross-origin
Server-Timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=10.59, cache_generate.active_support;dur=2.71,
cache_write.active_support;dur=0.11, instantiation.active_record;dur=0.69,
start_processing.action_controller;dur=0.00, transaction.active_record;dur=12.16,
render.active_model_serializers;dur=12.93, process_action.action_controller;dur=54.94
- cache_read.active_support;dur=0.46, sql.active_record;dur=53.51, cache_generate.active_support;dur=36.16,
cache_write.active_support;dur=1.15, instantiation.active_record;dur=8.74,
start_processing.action_controller;dur=0.01, transaction.active_record;dur=55.39,
render.active_model_serializers;dur=42.33, process_action.action_controller;dur=227.16
X-Content-Type-Options:
- nosniff
X-Frame-Options:
@ -52,13 +52,13 @@ interactions:
X-RateLimit-Limit:
- '300'
X-RateLimit-Remaining:
- '297'
- '299'
X-RateLimit-Reset:
- '2025-02-14T00:00:00.408635Z'
- '2025-02-15T15:00:00.980794Z'
X-Request-Id:
- b4f36d58-6eaa-4901-b2dd-ee857cd254c6
- 99385df2-56f3-4c0d-93a6-3b8c4230d485
X-Runtime:
- '0.069538'
- '0.321928'
X-XSS-Protection:
- '0'
vary:
@ -83,32 +83,47 @@ interactions:
uri: http://localhost:3000/api/v1/notifications
response:
body:
string: '[{"id":"20","type":"mention","created_at":"2025-02-13T21:56:17.717Z","group_key":"ungrouped-20","account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2025-02-13","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"status":{"id":"113998808834483931","created_at":"2025-02-13T21:56:17.383Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/113998808834483931","url":"http://localhost:3000/@admin/113998808834483931","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"content":"\u003cp\u003e\u003cspan
string: '[{"id":"36","type":"mention","created_at":"2025-02-15T12:34:22.380Z","group_key":"ungrouped-36","account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"status":{"id":"114007923875989611","created_at":"2025-02-15T12:34:21.888Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/114007923875989611","url":"http://localhost:3000/@admin/114007923875989611","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"content":"\u003cp\u003e\u003cspan
class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"http://localhost:3000/@mastodonpy_test\"
class=\"u-url mention\"\u003e@\u003cspan\u003emastodonpy_test\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e
hello!\u003c/p\u003e","filtered":[],"reblog":null,"application":{"name":"Mastodon.py
test suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2025-02-13","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}}]'
test suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}},{"id":"35","type":"poll","created_at":"2025-02-13T22:01:54.189Z","group_key":"ungrouped-35","account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"status":{"id":"113998810972107187","created_at":"2025-02-13T21:56:49.999Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/113998810972107187","url":"http://localhost:3000/@admin/113998810972107187","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"content":"\u003cp\u003enice\u003c/p\u003e","filtered":[],"reblog":null,"application":{"name":"Mastodon.py
test suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":{"id":"2","expires_at":"2025-02-13T22:01:49.997Z","expired":true,"multiple":false,"votes_count":1,"voters_count":1,"voted":true,"own_votes":[1],"options":[{"title":"four
twenty","votes_count":0},{"title":"sixty-nine","votes_count":1}],"emojis":[]}}},{"id":"32","type":"mention","created_at":"2025-02-13T21:58:34.110Z","group_key":"ungrouped-32","account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"status":{"id":"113998817726451380","created_at":"2025-02-13T21:58:33.064Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"direct","language":"en","uri":"http://localhost:3000/users/admin/statuses/113998817726451380","url":"http://localhost:3000/@admin/113998817726451380","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"content":"\u003cp\u003e\u003cspan
class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"http://localhost:3000/@mastodonpy_test\"
class=\"u-url mention\"\u003e@\u003cspan\u003emastodonpy_test\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e
todo funny text here\u003c/p\u003e","filtered":[],"reblog":null,"application":{"name":"Mastodon.py
test suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}},{"id":"30","type":"mention","created_at":"2025-02-13T21:57:41.476Z","group_key":"ungrouped-30","account":{"id":"113998801391516277","username":"mastodonpy_test_2","acct":"mastodonpy_test_2","display_name":"","locked":false,"bot":false,"discoverable":true,"indexable":true,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@mastodonpy_test_2","uri":"http://localhost:3000/users/mastodonpy_test_2","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":2,"last_status_at":"2025-02-13","hide_collections":null,"noindex":false,"emojis":[],"roles":[],"fields":[]},"status":{"id":"113998814324184078","created_at":"2025-02-13T21:57:41.150Z","in_reply_to_id":"113998814250739998","in_reply_to_account_id":"113998801242326861","sensitive":false,"spoiler_text":"","visibility":"direct","language":"ja","uri":"http://localhost:3000/users/mastodonpy_test_2/statuses/113998814324184078","url":"http://localhost:3000/@mastodonpy_test_2/113998814324184078","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"content":"\u003cp\u003e\u003cspan
class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"http://localhost:3000/@mastodonpy_test\"
class=\"u-url mention\"\u003e@\u003cspan\u003emastodonpy_test\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e
pssssst!\u003c/p\u003e","filtered":[],"reblog":null,"application":{"name":"Mastodon.py
test suite","website":null},"account":{"id":"113998801391516277","username":"mastodonpy_test_2","acct":"mastodonpy_test_2","display_name":"","locked":false,"bot":false,"discoverable":true,"indexable":true,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@mastodonpy_test_2","uri":"http://localhost:3000/users/mastodonpy_test_2","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":2,"last_status_at":"2025-02-13","hide_collections":null,"noindex":false,"emojis":[],"roles":[],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}},{"id":"28","type":"mention","created_at":"2025-02-13T21:57:38.145Z","group_key":"ungrouped-28","account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"status":{"id":"113998814106163410","created_at":"2025-02-13T21:57:37.823Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/113998814106163410","url":"http://localhost:3000/@admin/113998814106163410","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"content":"\u003cp\u003e\u003cspan
class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"http://localhost:3000/@mastodonpy_test\"
class=\"u-url mention\"\u003e@\u003cspan\u003emastodonpy_test\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e
beep beep I\u0026#39;m a jeep\u003c/p\u003e","filtered":[],"reblog":null,"application":{"name":"Mastodon.py
test suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}}]'
headers:
Cache-Control:
- private, no-store
Content-Length:
- '2654'
- '13277'
Content-Security-Policy:
- default-src 'none'; frame-ancestors 'none'; form-action 'none'
Content-Type:
- application/json; charset=utf-8
ETag:
- W/"2182823a710def7f7c79da25f5be23de"
- W/"9e92d438557c09e766c203fa15107b62"
Link:
- <http://localhost:3000/api/v1/notifications?max_id=20>; rel="next", <http://localhost:3000/api/v1/notifications?min_id=20>;
- <http://localhost:3000/api/v1/notifications?max_id=28>; rel="next", <http://localhost:3000/api/v1/notifications?min_id=36>;
rel="prev"
Referrer-Policy:
- strict-origin-when-cross-origin
Server-Timing:
- cache_read.active_support;dur=0.09, sql.active_record;dur=3.26, cache_generate.active_support;dur=3.42,
cache_write.active_support;dur=0.14, instantiation.active_record;dur=1.19,
start_processing.action_controller;dur=0.01, cache_fetch_hit.active_support;dur=0.00,
render.active_model_serializers;dur=5.10, process_action.action_controller;dur=48.05
- cache_read.active_support;dur=0.84, sql.active_record;dur=139.59, cache_generate.active_support;dur=34.82,
cache_write.active_support;dur=0.90, instantiation.active_record;dur=7.88,
start_processing.action_controller;dur=0.00, transaction.active_record;dur=11.42,
cache_fetch_hit.active_support;dur=0.02, render.active_model_serializers;dur=27.42,
process_action.action_controller;dur=289.86
X-Content-Type-Options:
- nosniff
X-Frame-Options:
@ -120,11 +135,11 @@ interactions:
X-RateLimit-Remaining:
- '299'
X-RateLimit-Reset:
- '2025-02-13T22:00:00.485173Z'
- '2025-02-15T12:35:00.150581Z'
X-Request-Id:
- f8656e97-dbb3-42ef-80d7-13b0aabfc8e4
- c6fbdd8c-c91d-49d2-9ee0-cfa96e1bc86c
X-Runtime:
- '0.073110'
- '0.367543'
X-XSS-Protection:
- '0'
vary:
@ -146,14 +161,14 @@ interactions:
User-Agent:
- tests/v311
method: GET
uri: http://localhost:3000/api/v1/notifications/20
uri: http://localhost:3000/api/v1/notifications/36
response:
body:
string: '{"id":"20","type":"mention","created_at":"2025-02-13T21:56:17.717Z","group_key":"ungrouped-20","account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2025-02-13","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"status":{"id":"113998808834483931","created_at":"2025-02-13T21:56:17.383Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/113998808834483931","url":"http://localhost:3000/@admin/113998808834483931","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"content":"\u003cp\u003e\u003cspan
string: '{"id":"36","type":"mention","created_at":"2025-02-15T12:34:22.380Z","group_key":"ungrouped-36","account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"status":{"id":"114007923875989611","created_at":"2025-02-15T12:34:21.888Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/114007923875989611","url":"http://localhost:3000/@admin/114007923875989611","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"content":"\u003cp\u003e\u003cspan
class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"http://localhost:3000/@mastodonpy_test\"
class=\"u-url mention\"\u003e@\u003cspan\u003emastodonpy_test\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e
hello!\u003c/p\u003e","filtered":[],"reblog":null,"application":{"name":"Mastodon.py
test suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2025-02-13","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}}'
test suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":6,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}}'
headers:
Cache-Control:
- private, no-store
@ -164,14 +179,14 @@ interactions:
Content-Type:
- application/json; charset=utf-8
ETag:
- W/"fe67381c47de18476c7c3f494d5792e5"
- W/"e35bcf37d0e1d8a56cde95fc0c4023e3"
Referrer-Policy:
- strict-origin-when-cross-origin
Server-Timing:
- cache_read.active_support;dur=0.09, sql.active_record;dur=2.82, cache_generate.active_support;dur=2.87,
cache_write.active_support;dur=0.14, instantiation.active_record;dur=0.92,
- cache_read.active_support;dur=0.09, sql.active_record;dur=3.70, cache_generate.active_support;dur=7.35,
cache_write.active_support;dur=0.14, instantiation.active_record;dur=1.12,
start_processing.action_controller;dur=0.00, cache_fetch_hit.active_support;dur=0.00,
render.active_model_serializers;dur=20.11, process_action.action_controller;dur=39.76
render.active_model_serializers;dur=34.83, process_action.action_controller;dur=55.55
X-Content-Type-Options:
- nosniff
X-Frame-Options:
@ -183,11 +198,70 @@ interactions:
X-RateLimit-Remaining:
- '299'
X-RateLimit-Reset:
- '2025-02-13T22:00:00.590939Z'
- '2025-02-15T12:35:00.668513Z'
X-Request-Id:
- 5c62bde5-53c3-4cb2-8a26-5f2e315a1fd1
- 17e476c9-7c46-42a0-8037-7b44d90d46ec
X-Runtime:
- '0.055167'
- '0.076951'
X-XSS-Protection:
- '0'
vary:
- Authorization, Origin
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Authorization:
- Bearer __MASTODON_PY_TEST_ACCESS_TOKEN
Connection:
- keep-alive
User-Agent:
- tests/v311
method: GET
uri: http://localhost:3000/api/v1/notifications/unread_count
response:
body:
string: '{"count":5}'
headers:
Cache-Control:
- private, no-store
Content-Length:
- '11'
Content-Security-Policy:
- default-src 'none'; frame-ancestors 'none'; form-action 'none'
Content-Type:
- application/json; charset=utf-8
ETag:
- W/"a7b59f14220279bf034e35863bb5c8f0"
Referrer-Policy:
- strict-origin-when-cross-origin
Server-Timing:
- cache_read.active_support;dur=0.02, sql.active_record;dur=6.49, cache_generate.active_support;dur=0.88,
cache_write.active_support;dur=0.08, instantiation.active_record;dur=0.18,
start_processing.action_controller;dur=0.00, render.active_model_serializers;dur=0.10,
process_action.action_controller;dur=55.96
X-Content-Type-Options:
- nosniff
X-Frame-Options:
- SAMEORIGIN
X-Permitted-Cross-Domain-Policies:
- none
X-RateLimit-Limit:
- '300'
X-RateLimit-Remaining:
- '299'
X-RateLimit-Reset:
- '2025-02-15T12:35:00.741907Z'
X-Request-Id:
- dbd86f5e-c491-4aa3-a428-038ba9834209
X-Runtime:
- '0.071118'
X-XSS-Protection:
- '0'
vary:
@ -211,12 +285,12 @@ interactions:
User-Agent:
- tests/v311
method: DELETE
uri: http://localhost:3000/api/v1/statuses/113998808834483931
uri: http://localhost:3000/api/v1/statuses/114007923875989611
response:
body:
string: '{"id":"113998808834483931","created_at":"2025-02-13T21:56:17.383Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/113998808834483931","url":"http://localhost:3000/@admin/113998808834483931","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"@mastodonpy_test
string: '{"id":"114007923875989611","created_at":"2025-02-15T12:34:21.888Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/114007923875989611","url":"http://localhost:3000/@admin/114007923875989611","replies_count":0,"reblogs_count":0,"favourites_count":0,"edited_at":null,"favourited":false,"reblogged":false,"muted":false,"bookmarked":false,"pinned":false,"text":"@mastodonpy_test
hello!","filtered":[],"reblog":null,"application":{"name":"Mastodon.py test
suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":0,"last_status_at":"2025-02-13","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}'
suite","website":null},"account":{"id":"113998800956287197","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2025-02-13T00:00:00.000Z","note":"","url":"http://localhost:3000/@admin","uri":"http://localhost:3000/users/admin","avatar":"http://localhost:3000/avatars/original/missing.png","avatar_static":"http://localhost:3000/avatars/original/missing.png","header":"http://localhost:3000/headers/original/missing.png","header_static":"http://localhost:3000/headers/original/missing.png","followers_count":1,"following_count":0,"statuses_count":5,"last_status_at":"2025-02-15","hide_collections":null,"noindex":false,"emojis":[],"roles":[{"id":"3","name":"Owner","color":""}],"fields":[]},"media_attachments":[],"mentions":[{"id":"113998801242326861","username":"mastodonpy_test","url":"http://localhost:3000/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}'
headers:
Cache-Control:
- private, no-store
@ -227,14 +301,14 @@ interactions:
Content-Type:
- application/json; charset=utf-8
ETag:
- W/"a8f49551581806c5cd61b62aacb999fb"
- W/"eeb757b5b519fba1e4ad662536b433f4"
Referrer-Policy:
- strict-origin-when-cross-origin
Server-Timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=5.97, cache_generate.active_support;dur=2.50,
cache_write.active_support;dur=0.15, instantiation.active_record;dur=0.84,
start_processing.action_controller;dur=0.00, transaction.active_record;dur=3.42,
render.active_model_serializers;dur=13.17, process_action.action_controller;dur=43.45
- cache_read.active_support;dur=0.08, sql.active_record;dur=8.60, cache_generate.active_support;dur=4.16,
cache_write.active_support;dur=0.19, instantiation.active_record;dur=1.38,
start_processing.action_controller;dur=0.00, transaction.active_record;dur=4.53,
render.active_model_serializers;dur=61.14, process_action.action_controller;dur=97.75
X-Content-Type-Options:
- nosniff
X-Frame-Options:
@ -246,11 +320,11 @@ interactions:
X-RateLimit-Remaining:
- '29'
X-RateLimit-Reset:
- '2025-02-13T22:00:00.651352Z'
- '2025-02-15T13:00:00.828004Z'
X-Request-Id:
- 54b06215-e8a7-4286-b196-2aa5796f563a
- 3d8a3cdb-d852-439c-8cc7-5cd787f7c749
X-Runtime:
- '0.057846'
- '0.121283'
X-XSS-Protection:
- '0'
vary:

Wyświetl plik

@ -15,6 +15,7 @@ def test_notifications(api, mention):
notifications = api.notifications()
assert api.notifications(notifications[0])
assert notifications[0].status.id == mention.id
assert api.notifications_unread_count().count > 0
@pytest.mark.vcr()
def test_notifications_mentions_only(api, mention):