From 6f807daf5a06a10b747eeee8c4302ce2f0a74f96 Mon Sep 17 00:00:00 2001
From: Lorenz Diener
Date: Sun, 28 Apr 2019 01:52:09 +0200
Subject: Breaking change: Stream functions now return immediately (Fixes #149)
---
mastodon/Mastodon.py | 26 ++++----
tests/cassettes/test_stream_user.yaml | 94 ++++++++++++++---------------
tests/cassettes/test_stream_user_local.yaml | 54 ++++++++---------
3 files changed, 85 insertions(+), 89 deletions(-)
diff --git a/mastodon/Mastodon.py b/mastodon/Mastodon.py
index 5ba33d4..1d23fad 100644
--- a/mastodon/Mastodon.py
+++ b/mastodon/Mastodon.py
@@ -2475,7 +2475,7 @@ class Mastodon:
if connection.status_code != 200:
raise MastodonNetworkError("Could not connect to streaming server: %s" % connection.reason)
return connection
- connection = connect_func()
+ connection = None
# Async stream handler
class __stream_handle():
@@ -2506,18 +2506,19 @@ class Mastodon:
# Run until closed or until error if not autoreconnecting
while self.running:
- with closing(self.connection) as r:
- try:
- listener.handle_stream(r)
- except (AttributeError, MastodonMalformedEventError, MastodonNetworkError) as e:
- if not (self.closed or self.reconnect_async):
- raise e
- else:
- if self.closed:
- self.running = False
+ if not self.connection is None:
+ with closing(self.connection) as r:
+ try:
+ listener.handle_stream(r)
+ except (AttributeError, MastodonMalformedEventError, MastodonNetworkError) as e:
+ if not (self.closed or self.reconnect_async):
+ raise e
+ else:
+ if self.closed:
+ self.running = False
# Reconnect loop. Try immediately once, then with delays on error.
- if self.reconnect_async and not self.closed:
+ if (self.reconnect_async and not self.closed) or self.connection is None:
self.reconnecting = True
connect_success = False
while not connect_success:
@@ -2527,6 +2528,8 @@ class Mastodon:
if self.connection.status_code != 200:
time.sleep(self.reconnect_async_wait_sec)
connect_success = False
+ exception = MastodonNetworkError("Could not connect to server.")
+ listener.on_abort(exception)
except:
time.sleep(self.reconnect_async_wait_sec)
connect_success = False
@@ -2543,6 +2546,7 @@ class Mastodon:
return handle
else:
# Blocking, never returns (can only leave via exception)
+ connection = connect_func()
with closing(connection) as r:
listener.handle_stream(r)
diff --git a/tests/cassettes/test_stream_user.yaml b/tests/cassettes/test_stream_user.yaml
index a94f406..f0a1ae4 100644
--- a/tests/cassettes/test_stream_user.yaml
+++ b/tests/cassettes/test_stream_user.yaml
@@ -10,11 +10,11 @@ interactions:
method: GET
uri: http://localhost:3000/api/v1/accounts/verify_credentials
response:
- body: {string: '{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T17:58:11.427Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":4,"source":{"privacy":"public","sensitive":false,"language":null,"note":"","fields":[]},"emojis":[],"fields":[]}'}
+ body: {string: '{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T18:52:42.626Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":8,"source":{"privacy":"public","sensitive":false,"language":null,"note":"","fields":[]},"emojis":[],"fields":[]}'}
headers:
Cache-Control: ['max-age=0, private, must-revalidate']
Content-Type: [application/json; charset=utf-8]
- ETag: [W/"1eeedcf7d78b94ca6724689f4261e8be"]
+ ETag: [W/"cd2127b055679523c42093d9fa35eaf9"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -22,8 +22,8 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [5a5014a0-a99f-47b9-bac8-d6da55fc2b90]
- X-Runtime: ['0.021655']
+ X-Request-Id: [d33ae198-a4ca-4207-afb4-036e11d9033b]
+ X-Runtime: ['0.190787']
X-XSS-Protection: [1; mode=block]
content-length: ['609']
status: {code: 200, message: OK}
@@ -43,7 +43,7 @@ interactions:
headers:
Cache-Control: ['max-age=0, private, must-revalidate']
Content-Type: [application/json; charset=utf-8]
- ETag: [W/"11a1598090f5bf88f40c31bd3606dbef"]
+ ETag: [W/"c69d2321c40813c2e91746f6df8c685b"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -51,8 +51,8 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [e82a8459-b71e-4ad6-85f3-7a3ff66e12d5]
- X-Runtime: ['0.023404']
+ X-Request-Id: [559452ea-a4ca-49ce-a41c-9789a4e175d6]
+ X-Runtime: ['0.027095']
X-XSS-Protection: [1; mode=block]
content-length: ['211']
status: {code: 200, message: OK}
@@ -67,12 +67,12 @@ interactions:
method: GET
uri: http://localhost:3000/api/v1/instance/
response:
- body: {string: '{"uri":"localhost","title":"Mastodon","description":"","email":"","version":"2.8.0","urls":{"streaming_api":"ws://localhost:4000"},"stats":{"user_count":2,"status_count":66,"domain_count":0},"thumbnail":"http://localhost/packs/media/images/preview-9a17d32fc48369e8ccd910a75260e67d.jpg","languages":["en"],"registrations":true,"contact_account":null}'}
+ body: {string: '{"uri":"localhost","title":"Mastodon","description":"","email":"","version":"2.8.0","urls":{"streaming_api":"ws://localhost:4000"},"stats":{"user_count":2,"status_count":10,"domain_count":0},"thumbnail":"http://localhost/packs/media/images/preview-9a17d32fc48369e8ccd910a75260e67d.jpg","languages":["en"],"registrations":true,"contact_account":null}'}
headers:
Cache-Control: ['max-age=300, public']
Content-Type: [application/json; charset=utf-8]
- Date: ['Sat, 27 Apr 2019 18:18:46 GMT']
- ETag: [W/"d335ec7c575ba1754000860090deaab6"]
+ Date: ['Sat, 27 Apr 2019 23:51:08 GMT']
+ ETag: [W/"1853e19f93744ec050047787c0defeb4"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -80,8 +80,8 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [de676fbf-ea1f-48ce-9646-f86d92162a8b]
- X-Runtime: ['0.046948']
+ X-Request-Id: [15378378-5d7a-4d03-aef0-2da0d7523ab3]
+ X-Runtime: ['0.038039']
X-XSS-Protection: [1; mode=block]
content-length: ['349']
status: {code: 200, message: OK}
@@ -98,15 +98,13 @@ interactions:
method: POST
uri: http://localhost:3000/api/v1/statuses
response:
- body: {string: '{"id":"101999518125980927","created_at":"2019-04-27T18:18:51.589Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/mastodonpy_test/statuses/101999518125980927","content":"\u003cp\u003eonly
- real cars respond.\u003c/p\u003e","url":"http://localhost/@mastodonpy_test/101999518125980927","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
- test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"John
- Lennon","locked":true,"bot":false,"created_at":"2019-04-27T20:03:12.393Z","note":"\u003cp\u003eI
- walk funny\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/system/accounts/avatars/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","avatar_static":"http://localhost/system/accounts/avatars/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","header":"http://localhost/system/accounts/headers/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","header_static":"http://localhost/system/accounts/headers/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","followers_count":0,"following_count":0,"statuses_count":63,"emojis":[],"fields":[{"name":"bread","value":"toasty.","verified_at":null},{"name":"lasagna","value":"no!!!","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
+ body: {string: '{"id":"102000825046689277","created_at":"2019-04-27T23:51:13.758Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/mastodonpy_test/statuses/102000825046689277","content":"\u003cp\u003eonly
+ real cars respond.\u003c/p\u003e","url":"http://localhost/@mastodonpy_test/102000825046689277","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
+ test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"created_at":"2019-04-27T20:56:20.155Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
headers:
Cache-Control: ['max-age=0, private, must-revalidate']
Content-Type: [application/json; charset=utf-8]
- ETag: [W/"389a02cefbfab01ed906d5eced810cfb"]
+ ETag: [W/"6a5a7e8c76cf1f6e542c7fa3d0b324e6"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -114,10 +112,10 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [e8077894-efd5-4970-91eb-902d0af25a86]
- X-Runtime: ['0.410379']
+ X-Request-Id: [f07f61fc-8265-4d61-8c98-84e0388f31c0]
+ X-Runtime: ['0.541242']
X-XSS-Protection: [1; mode=block]
- content-length: ['1616']
+ content-length: ['1253']
status: {code: 200, message: OK}
- request:
body: status=%40mastodonpy_test+beep+beep+I%27m+a+jeep
@@ -132,15 +130,15 @@ interactions:
method: POST
uri: http://localhost:3000/api/v1/statuses
response:
- body: {string: '{"id":"101999518153289143","created_at":"2019-04-27T18:18:52.027Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/admin/statuses/101999518153289143","content":"\u003cp\u003e\u003cspan
+ body: {string: '{"id":"102000825079136326","created_at":"2019-04-27T23:51:14.093Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/admin/statuses/102000825079136326","content":"\u003cp\u003e\u003cspan
class=\"h-card\"\u003e\u003ca href=\"http://localhost/@mastodonpy_test\" class=\"u-url
mention\"\u003e@\u003cspan\u003emastodonpy_test\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e
- beep beep I\u0026apos;m a jeep\u003c/p\u003e","url":"http://localhost/@admin/101999518153289143","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
- test suite","website":null},"account":{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T17:58:11.427Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":5,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[{"id":"1234567890123456","username":"mastodonpy_test","url":"http://localhost/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}'}
+ beep beep I\u0026apos;m a jeep\u003c/p\u003e","url":"http://localhost/@admin/102000825079136326","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
+ test suite","website":null},"account":{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T18:52:42.626Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":9,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[{"id":"1234567890123456","username":"mastodonpy_test","url":"http://localhost/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}'}
headers:
Cache-Control: ['max-age=0, private, must-revalidate']
Content-Type: [application/json; charset=utf-8]
- ETag: [W/"c83781decbfc6a65c1e323598aab069a"]
+ ETag: [W/"2ccbe7c603db538a9b9d94ff8174016d"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -148,8 +146,8 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [56d08555-33d7-40f1-8f3c-aa5e737a2efe]
- X-Runtime: ['0.461534']
+ X-Request-Id: [13c205c2-e5bc-4469-b6a0-a7dc18dd5f11]
+ X-Runtime: ['0.213550']
X-XSS-Protection: [1; mode=block]
content-length: ['1511']
status: {code: 200, message: OK}
@@ -166,13 +164,13 @@ interactions:
method: POST
uri: http://localhost:3000/api/v1/statuses
response:
- body: {string: '{"id":"101999518193602263","created_at":"2019-04-27T18:18:52.634Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/admin/statuses/101999518193602263","content":"\u003cp\u003eon
- the internet, nobody knows you\u0026apos;re a plane\u003c/p\u003e","url":"http://localhost/@admin/101999518193602263","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
- test suite","website":null},"account":{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T17:58:11.427Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":6,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
+ body: {string: '{"id":"102000825095837749","created_at":"2019-04-27T23:51:14.349Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/admin/statuses/102000825095837749","content":"\u003cp\u003eon
+ the internet, nobody knows you\u0026apos;re a plane\u003c/p\u003e","url":"http://localhost/@admin/102000825095837749","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
+ test suite","website":null},"account":{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T18:52:42.626Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":10,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
headers:
Cache-Control: ['max-age=0, private, must-revalidate']
Content-Type: [application/json; charset=utf-8]
- ETag: [W/"f56ee957e06ac66528b5a235a0c83d4c"]
+ ETag: [W/"c2ab6b89316efb69005c230c72accb6b"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -180,10 +178,10 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [eeb9bca6-952a-4e5f-b124-68eb57cbd9c2]
- X-Runtime: ['0.410981']
+ X-Request-Id: [48b902b9-9cb6-422d-a3f1-ea014a8cd6e7]
+ X-Runtime: ['0.165465']
X-XSS-Protection: [1; mode=block]
- content-length: ['1220']
+ content-length: ['1221']
status: {code: 200, message: OK}
- request:
body: null
@@ -195,13 +193,13 @@ interactions:
Content-Length: ['0']
User-Agent: [python-requests/2.18.4]
method: DELETE
- uri: http://localhost:3000/api/v1/statuses/101999518125980927
+ uri: http://localhost:3000/api/v1/statuses/102000825046689277
response:
body: {string: '{}'}
headers:
Cache-Control: ['max-age=0, private, must-revalidate']
Content-Type: [application/json; charset=utf-8]
- ETag: [W/"0e17500f6fd394ef25f979c06f837df5"]
+ ETag: [W/"68dc9d53058fab55b922570e8d9416d8"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -209,8 +207,8 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [588349bf-94fa-4ce7-8e2b-85b6c48cdca8]
- X-Runtime: ['0.026396']
+ X-Request-Id: [1c002f40-b79d-40a4-8e64-e8e81bbde4a3]
+ X-Runtime: ['0.062087']
X-XSS-Protection: [1; mode=block]
content-length: ['2']
status: {code: 200, message: OK}
@@ -227,24 +225,22 @@ interactions:
response:
body: {string: 'event: update
- data: {"id":"101999518125980927","created_at":"2019-04-27T18:18:51.589Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/mastodonpy_test/statuses/101999518125980927","content":"only
- real cars respond.
","url":"http://localhost/@mastodonpy_test/101999518125980927","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
- test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"John
- Lennon","locked":true,"bot":false,"created_at":"2019-04-27T20:03:12.393Z","note":"I
- walk funny
","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/system/accounts/avatars/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","avatar_static":"http://localhost/system/accounts/avatars/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","header":"http://localhost/system/accounts/headers/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","header_static":"http://localhost/system/accounts/headers/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","followers_count":0,"following_count":0,"statuses_count":63,"emojis":[],"fields":[{"name":"bread","value":"toasty.","verified_at":null},{"name":"lasagna","value":"no!!!","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}
+ data: {"id":"102000825046689277","created_at":"2019-04-27T23:51:13.758Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/mastodonpy_test/statuses/102000825046689277","content":"only
+ real cars respond.
","url":"http://localhost/@mastodonpy_test/102000825046689277","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
+ test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"created_at":"2019-04-27T20:56:20.155Z","note":"","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}
event: notification
- data: {"id":"38","type":"mention","created_at":"2019-04-27T18:18:52.283Z","account":{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T17:58:11.427Z","note":"","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":5,"emojis":[],"fields":[]},"status":{"id":"101999518153289143","created_at":"2019-04-27T18:18:52.027Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/admin/statuses/101999518153289143","content":"
","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":9,"emojis":[],"fields":[]},"status":{"id":"102000825079136326","created_at":"2019-04-27T23:51:14.093Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost/users/admin/statuses/102000825079136326","content":"@mastodonpy_test beep beep I'm a jeep
","url":"http://localhost/@admin/101999518153289143","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"reblog":null,"application":{"name":"Mastodon.py
- test suite","website":null},"account":{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T17:58:11.427Z","note":"","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":5,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[{"id":"1234567890123456","username":"mastodonpy_test","url":"http://localhost/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}}
+ mention\">@mastodonpy_test beep beep I'm a jeep
","url":"http://localhost/@admin/102000825079136326","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"reblog":null,"application":{"name":"Mastodon.py
+ test suite","website":null},"account":{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T18:52:42.626Z","note":"","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":9,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[{"id":"1234567890123456","username":"mastodonpy_test","url":"http://localhost/@mastodonpy_test","acct":"mastodonpy_test"}],"tags":[],"emojis":[],"card":null,"poll":null}}
event: delete
- data: 101999518125980927
+ data: 102000825046689277
:'}
@@ -254,9 +250,9 @@ interactions:
Access-Control-Allow-Origin: ['*']
Connection: [keep-alive]
Content-Type: [text/event-stream]
- Date: ['Sat, 27 Apr 2019 18:18:51 GMT']
+ Date: ['Sat, 27 Apr 2019 23:51:14 GMT']
Transfer-Encoding: [chunked]
X-Powered-By: [Express]
- X-Request-Id: [8ac2ac89-1888-4733-97f6-22252010d097]
+ X-Request-Id: [b9afd71f-bd22-418a-82c9-b6b308aaf422]
status: {code: 200, message: OK}
version: 1
diff --git a/tests/cassettes/test_stream_user_local.yaml b/tests/cassettes/test_stream_user_local.yaml
index 9d72a4d..22de8fb 100644
--- a/tests/cassettes/test_stream_user_local.yaml
+++ b/tests/cassettes/test_stream_user_local.yaml
@@ -10,11 +10,11 @@ interactions:
method: GET
uri: http://localhost:3000/api/v1/accounts/verify_credentials
response:
- body: {string: '{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T17:58:11.427Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":6,"source":{"privacy":"public","sensitive":false,"language":null,"note":"","fields":[]},"emojis":[],"fields":[]}'}
+ body: {string: '{"id":"1","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2019-04-27T18:52:42.626Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@admin","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":10,"source":{"privacy":"public","sensitive":false,"language":null,"note":"","fields":[]},"emojis":[],"fields":[]}'}
headers:
Cache-Control: ['max-age=0, private, must-revalidate']
Content-Type: [application/json; charset=utf-8]
- ETag: [W/"183e1b0f0d58dd3b410dd700a2727161"]
+ ETag: [W/"897cda4d35dcffc1a0e9dd29fc71130f"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -22,10 +22,10 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [c7ad422b-3b8f-4a21-a661-0c1c0778966d]
- X-Runtime: ['0.030147']
+ X-Request-Id: [9c808452-96f3-4dee-b8b4-5159a9686307]
+ X-Runtime: ['0.024396']
X-XSS-Protection: [1; mode=block]
- content-length: ['609']
+ content-length: ['610']
status: {code: 200, message: OK}
- request:
body: null
@@ -43,7 +43,7 @@ interactions:
headers:
Cache-Control: ['max-age=0, private, must-revalidate']
Content-Type: [application/json; charset=utf-8]
- ETag: [W/"41cf01fea278b3569d7c8d5a5c5782ec"]
+ ETag: [W/"2268b88a081c532f69d4e8f3f6cc1a41"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -51,8 +51,8 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [194e9c74-f1f7-489a-9cdc-dcc6cdb2872c]
- X-Runtime: ['0.025540']
+ X-Request-Id: [809c4964-6493-485a-8a47-5ffc3c0e6d5d]
+ X-Runtime: ['0.022342']
X-XSS-Protection: [1; mode=block]
content-length: ['211']
status: {code: 200, message: OK}
@@ -67,12 +67,12 @@ interactions:
method: GET
uri: http://localhost:3000/api/v1/instance/
response:
- body: {string: '{"uri":"localhost","title":"Mastodon","description":"","email":"","version":"2.8.0","urls":{"streaming_api":"ws://localhost:4000"},"stats":{"user_count":2,"status_count":68,"domain_count":0},"thumbnail":"http://localhost/packs/media/images/preview-9a17d32fc48369e8ccd910a75260e67d.jpg","languages":["en"],"registrations":true,"contact_account":null}'}
+ body: {string: '{"uri":"localhost","title":"Mastodon","description":"","email":"","version":"2.8.0","urls":{"streaming_api":"ws://localhost:4000"},"stats":{"user_count":2,"status_count":12,"domain_count":0},"thumbnail":"http://localhost/packs/media/images/preview-9a17d32fc48369e8ccd910a75260e67d.jpg","languages":["en"],"registrations":true,"contact_account":null}'}
headers:
Cache-Control: ['max-age=300, public']
Content-Type: [application/json; charset=utf-8]
- Date: ['Sat, 27 Apr 2019 18:19:24 GMT']
- ETag: [W/"ad3c648b6557460453c53744b0145a35"]
+ Date: ['Sat, 27 Apr 2019 23:51:28 GMT']
+ ETag: [W/"23dbf13c779b1cc02bec5079773083f5"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -80,8 +80,8 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [6171dbda-326f-42e2-8e40-10b8d18bbe74]
- X-Runtime: ['0.025239']
+ X-Request-Id: [b3f91b98-37e1-4689-b1d5-ca0915bc72c6]
+ X-Runtime: ['0.023238']
X-XSS-Protection: [1; mode=block]
content-length: ['349']
status: {code: 200, message: OK}
@@ -98,15 +98,13 @@ interactions:
method: POST
uri: http://localhost:3000/api/v1/statuses
response:
- body: {string: '{"id":"101999520584397869","created_at":"2019-04-27T18:19:29.079Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/101999520584397869","content":"\u003cp\u003eit\u0026apos;s
- cool guy\u003c/p\u003e","url":"http://localhost/@mastodonpy_test/101999520584397869","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
- test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"John
- Lennon","locked":true,"bot":false,"created_at":"2019-04-27T20:03:12.393Z","note":"\u003cp\u003eI
- walk funny\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/system/accounts/avatars/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","avatar_static":"http://localhost/system/accounts/avatars/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","header":"http://localhost/system/accounts/headers/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","header_static":"http://localhost/system/accounts/headers/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","followers_count":0,"following_count":0,"statuses_count":63,"emojis":[],"fields":[{"name":"bread","value":"toasty.","verified_at":null},{"name":"lasagna","value":"no!!!","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
+ body: {string: '{"id":"102000826367266958","created_at":"2019-04-27T23:51:33.747Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/102000826367266958","content":"\u003cp\u003eit\u0026apos;s
+ cool guy\u003c/p\u003e","url":"http://localhost/@mastodonpy_test/102000826367266958","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
+ test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"created_at":"2019-04-27T20:56:20.155Z","note":"\u003cp\u003e\u003c/p\u003e","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}'}
headers:
Cache-Control: ['max-age=0, private, must-revalidate']
Content-Type: [application/json; charset=utf-8]
- ETag: [W/"773142da1c08dd0b884a6c52bdd50256"]
+ ETag: [W/"31fb33fa6323ac79ab4d8a1caf4d1c40"]
Referrer-Policy: [strict-origin-when-cross-origin]
Transfer-Encoding: [chunked]
Vary: ['Accept-Encoding, Origin']
@@ -114,10 +112,10 @@ interactions:
X-Download-Options: [noopen]
X-Frame-Options: [SAMEORIGIN]
X-Permitted-Cross-Domain-Policies: [none]
- X-Request-Id: [b74a2cfe-c18f-42d5-b966-dd8dabbcd286]
- X-Runtime: ['0.149867']
+ X-Request-Id: [0f41d973-d9b0-4e72-9f81-8c98d8ddfb40]
+ X-Runtime: ['0.158456']
X-XSS-Protection: [1; mode=block]
- content-length: ['1616']
+ content-length: ['1253']
status: {code: 200, message: OK}
- request:
body: null
@@ -132,11 +130,9 @@ interactions:
response:
body: {string: 'event: update
- data: {"id":"101999520584397869","created_at":"2019-04-27T18:19:29.079Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/101999520584397869","content":"it's
- cool guy
","url":"http://localhost/@mastodonpy_test/101999520584397869","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
- test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"John
- Lennon","locked":true,"bot":false,"created_at":"2019-04-27T20:03:12.393Z","note":"I
- walk funny
","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/system/accounts/avatars/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","avatar_static":"http://localhost/system/accounts/avatars/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","header":"http://localhost/system/accounts/headers/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","header_static":"http://localhost/system/accounts/headers/123/456/789/012/345/original/mastodonpyupload_.jpeg?1556389071","followers_count":0,"following_count":0,"statuses_count":63,"emojis":[],"fields":[{"name":"bread","value":"toasty.","verified_at":null},{"name":"lasagna","value":"no!!!","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}
+ data: {"id":"102000826367266958","created_at":"2019-04-27T23:51:33.747Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"ja","uri":"http://localhost/users/mastodonpy_test/statuses/102000826367266958","content":"it's
+ cool guy
","url":"http://localhost/@mastodonpy_test/102000826367266958","replies_count":0,"reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":false,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
+ test suite","website":null},"account":{"id":"1234567890123456","username":"mastodonpy_test","acct":"mastodonpy_test","display_name":"","locked":true,"bot":false,"created_at":"2019-04-27T20:56:20.155Z","note":"","url":"http://localhost/@mastodonpy_test","avatar":"http://localhost/avatars/original/missing.png","avatar_static":"http://localhost/avatars/original/missing.png","header":"http://localhost/headers/original/missing.png","header_static":"http://localhost/headers/original/missing.png","followers_count":0,"following_count":0,"statuses_count":3,"emojis":[],"fields":[]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"card":null,"poll":null}
:'}
@@ -146,9 +142,9 @@ interactions:
Access-Control-Allow-Origin: ['*']
Connection: [keep-alive]
Content-Type: [text/event-stream]
- Date: ['Sat, 27 Apr 2019 18:19:29 GMT']
+ Date: ['Sat, 27 Apr 2019 23:51:33 GMT']
Transfer-Encoding: [chunked]
X-Powered-By: [Express]
- X-Request-Id: [1545b4dd-c428-4904-8db3-b5f4af9908c3]
+ X-Request-Id: [d39b3ece-b7de-459d-8cea-f55d018ce010]
status: {code: 200, message: OK}
version: 1
--
cgit v1.2.3