add tests for json hooks
including a failing test for that thing i fixed earlier which isn't
in this branch 😓
This commit is contained in:
pare
430bebc124
commit
4b60a0d3cf
S'han modificat 8 arxius amb 432 adicions i 1 eliminacions
2
setup.py
2
setup.py
|
@ -5,7 +5,7 @@ setup(name='Mastodon.py',
|
|||
description='Python wrapper for the Mastodon API',
|
||||
packages=['mastodon'],
|
||||
setup_requires=['pytest-runner'],
|
||||
tests_require=['pytest', 'pytest-cov'],
|
||||
tests_require=['pytest', 'pytest-cov', 'vcrpy', 'pytest-vcr'],
|
||||
install_requires=['requests', 'python-dateutil', 'six', 'pytz'],
|
||||
url='https://github.com/halcy/Mastodon.py',
|
||||
author='Lorenz Diener',
|
||||
|
|
57
tests/cassettes/test_date_hook.yaml
Normal file
57
tests/cassettes/test_date_hook.yaml
Normal file
|
@ -0,0 +1,57 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: visibility=&status=Toot%21
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['26']
|
||||
Content-Type: [application/x-www-form-urlencoded]
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: POST
|
||||
uri: http://localhost:3000/api/v1/statuses
|
||||
response:
|
||||
body: {string: '{"id":"99073771458116447","created_at":"2017-11-27T01:23:00.315Z","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/99073771458116447","content":"\u003cp\u003eToot!\u003c/p\u003e","url":"http://localhost:3000/@admin/99073771458116447","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":"codltest","locked":false,"created_at":"2017-07-01T17:09:15.621Z","note":"\u003cp\u003ehello
|
||||
:)\u003c/p\u003e","url":"http://localhost:3000/@admin","avatar":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.png","avatar_static":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.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":21},"media_attachments":[],"mentions":[],"tags":[],"emojis":[]}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"4fa954380935e6d530871e25dc7a45c8"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [5aa7354f-9c8d-4145-99e6-6749e8e2a1d4]
|
||||
X-Runtime: ['0.088013']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['1216']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: DELETE
|
||||
uri: http://localhost:3000/api/v1/statuses/99073771458116447
|
||||
response:
|
||||
body: {string: '{}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"209d9274b8acc4d2f7265eb56d870053"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [5ef35962-28e8-4b0c-b5ab-51f3bdf28cce]
|
||||
X-Runtime: ['0.020564']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['2']
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
57
tests/cassettes/test_id_hook.yaml
Normal file
57
tests/cassettes/test_id_hook.yaml
Normal file
|
@ -0,0 +1,57 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: visibility=&status=Toot%21
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['26']
|
||||
Content-Type: [application/x-www-form-urlencoded]
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: POST
|
||||
uri: http://localhost:3000/api/v1/statuses
|
||||
response:
|
||||
body: {string: '{"id":"99073771372606324","created_at":"2017-11-27T01:22:59.008Z","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/99073771372606324","content":"\u003cp\u003eToot!\u003c/p\u003e","url":"http://localhost:3000/@admin/99073771372606324","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":"codltest","locked":false,"created_at":"2017-07-01T17:09:15.621Z","note":"\u003cp\u003ehello
|
||||
:)\u003c/p\u003e","url":"http://localhost:3000/@admin","avatar":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.png","avatar_static":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.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":20},"media_attachments":[],"mentions":[],"tags":[],"emojis":[]}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"2c28a9f579b2e3b51139a1081f64c227"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [c35694b9-ced1-4293-8461-e9480dc409cf]
|
||||
X-Runtime: ['0.082687']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['1216']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: DELETE
|
||||
uri: http://localhost:3000/api/v1/statuses/99073771372606324
|
||||
response:
|
||||
body: {string: '{}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"352d49aa855575352cbfb0ba819dcde5"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [d02b01f2-185b-48a7-b338-c305d75fc7e6]
|
||||
X-Runtime: ['0.024066']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['2']
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
112
tests/cassettes/test_id_hook_in_reply_to.yaml
Normal file
112
tests/cassettes/test_id_hook_in_reply_to.yaml
Normal file
|
@ -0,0 +1,112 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: visibility=&status=Toot%21
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['26']
|
||||
Content-Type: [application/x-www-form-urlencoded]
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: POST
|
||||
uri: http://localhost:3000/api/v1/statuses
|
||||
response:
|
||||
body: {string: '{"id":"99073771383398048","created_at":"2017-11-27T01:22:59.173Z","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/99073771383398048","content":"\u003cp\u003eToot!\u003c/p\u003e","url":"http://localhost:3000/@admin/99073771383398048","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":"codltest","locked":false,"created_at":"2017-07-01T17:09:15.621Z","note":"\u003cp\u003ehello
|
||||
:)\u003c/p\u003e","url":"http://localhost:3000/@admin","avatar":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.png","avatar_static":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.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":21},"media_attachments":[],"mentions":[],"tags":[],"emojis":[]}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"ef586888eb13661bb1965e2a7d5f19c6"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [1e79a2e1-102f-492a-9dc6-b1e6a335f027]
|
||||
X-Runtime: ['0.080896']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['1216']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: visibility=&in_reply_to_id=99073771383398048&status=Reply%21
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['60']
|
||||
Content-Type: [application/x-www-form-urlencoded]
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: POST
|
||||
uri: http://localhost:3000/api/v1/statuses
|
||||
response:
|
||||
body: {string: '{"id":"99073771391086384","created_at":"2017-11-27T01:22:59.292Z","in_reply_to_id":"99073771383398048","in_reply_to_account_id":"1","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:3000/users/admin/statuses/99073771391086384","content":"\u003cp\u003eReply!\u003c/p\u003e","url":"http://localhost:3000/@admin/99073771391086384","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":"codltest","locked":false,"created_at":"2017-07-01T17:09:15.621Z","note":"\u003cp\u003ehello
|
||||
:)\u003c/p\u003e","url":"http://localhost:3000/@admin","avatar":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.png","avatar_static":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.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":22},"media_attachments":[],"mentions":[],"tags":[],"emojis":[]}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"f1b126b867555c13a93a5f6a48fa2912"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [611432d3-60a5-4416-9028-1120419cd0c6]
|
||||
X-Runtime: ['0.127749']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['1231']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: DELETE
|
||||
uri: http://localhost:3000/api/v1/statuses/99073771391086384
|
||||
response:
|
||||
body: {string: '{}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"352d49aa855575352cbfb0ba819dcde5"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [6262e8bc-2a6e-4c03-b4c9-4381f83e3a67]
|
||||
X-Runtime: ['0.030844']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['2']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: DELETE
|
||||
uri: http://localhost:3000/api/v1/statuses/99073771383398048
|
||||
response:
|
||||
body: {string: '{}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"352d49aa855575352cbfb0ba819dcde5"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [f362de58-ca39-4c4f-b89c-b2135f25a05f]
|
||||
X-Runtime: ['0.028984']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['2']
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
115
tests/cassettes/test_id_hook_within_reblog.yaml
Normal file
115
tests/cassettes/test_id_hook_within_reblog.yaml
Normal file
|
@ -0,0 +1,115 @@
|
|||
interactions:
|
||||
- request:
|
||||
body: visibility=&status=Toot%21
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['26']
|
||||
Content-Type: [application/x-www-form-urlencoded]
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: POST
|
||||
uri: http://localhost:3000/api/v1/statuses
|
||||
response:
|
||||
body: {string: '{"id":"99073771410234489","created_at":"2017-11-27T01:22:59.589Z","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/99073771410234489","content":"\u003cp\u003eToot!\u003c/p\u003e","url":"http://localhost:3000/@admin/99073771410234489","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":"codltest","locked":false,"created_at":"2017-07-01T17:09:15.621Z","note":"\u003cp\u003ehello
|
||||
:)\u003c/p\u003e","url":"http://localhost:3000/@admin","avatar":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.png","avatar_static":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.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":22},"media_attachments":[],"mentions":[],"tags":[],"emojis":[]}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"a9b6db7410dca5fb876a9b990b4a7e25"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [300e401e-1f71-4e05-9f30-2ba967927abd]
|
||||
X-Runtime: ['0.114153']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['1216']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: POST
|
||||
uri: http://localhost:3000/api/v1/statuses/99073771410234489/reblog
|
||||
response:
|
||||
body: {string: '{"id":"99073771420203780","created_at":"2017-11-27T01:22:59.736Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":null,"uri":"http://localhost:3000/users/admin/statuses/99073771420203780/activity","content":"\u003cp\u003eRT
|
||||
\u003cspan class=\"h-card\"\u003e\u003ca href=\"http://localhost:3000/@admin\"
|
||||
class=\"u-url mention\"\u003e@\u003cspan\u003eadmin\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e
|
||||
Toot!\u003c/p\u003e","url":"http://localhost:3000/@admin/99073771420203780","reblogs_count":0,"favourites_count":0,"favourited":false,"reblogged":true,"muted":false,"reblog":{"id":"99073771410234489","created_at":"2017-11-27T01:22:59.589Z","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/99073771410234489","content":"\u003cp\u003eToot!\u003c/p\u003e","url":"http://localhost:3000/@admin/99073771410234489","reblogs_count":1,"favourites_count":0,"favourited":false,"reblogged":true,"muted":false,"pinned":false,"reblog":null,"application":{"name":"Mastodon.py
|
||||
test suite","website":null},"account":{"id":"1","username":"admin","acct":"admin","display_name":"codltest","locked":false,"created_at":"2017-07-01T17:09:15.621Z","note":"\u003cp\u003ehello
|
||||
:)\u003c/p\u003e","url":"http://localhost:3000/@admin","avatar":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.png","avatar_static":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.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":22},"media_attachments":[],"mentions":[],"tags":[],"emojis":[]},"application":null,"account":{"id":"1","username":"admin","acct":"admin","display_name":"codltest","locked":false,"created_at":"2017-07-01T17:09:15.621Z","note":"\u003cp\u003ehello
|
||||
:)\u003c/p\u003e","url":"http://localhost:3000/@admin","avatar":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.png","avatar_static":"http://localhost:3000/system/accounts/avatars/000/000/001/original/99b4c443463de195.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":23},"media_attachments":[],"mentions":[],"tags":[],"emojis":[]}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"85209a7d2c7cb240002817cbb8242376"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [5350fc29-7570-4f66-b296-9095100e74a7]
|
||||
X-Runtime: ['0.472800']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['2558']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: DELETE
|
||||
uri: http://localhost:3000/api/v1/statuses/99073771420203780
|
||||
response:
|
||||
body: {string: '{}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"209d9274b8acc4d2f7265eb56d870053"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [c6c39ed1-aa7d-44b8-8a3d-ff4f2c21bb09]
|
||||
X-Runtime: ['0.019955']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['2']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept: ['*/*']
|
||||
Accept-Encoding: ['gzip, deflate']
|
||||
Authorization: [Bearer __MASTODON_PY_TEST_TOKEN]
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['0']
|
||||
User-Agent: [python-requests/2.18.4]
|
||||
method: DELETE
|
||||
uri: http://localhost:3000/api/v1/statuses/99073771410234489
|
||||
response:
|
||||
body: {string: '{}'}
|
||||
headers:
|
||||
Cache-Control: ['max-age=0, private, must-revalidate']
|
||||
Content-Type: [application/json; charset=utf-8]
|
||||
ETag: [W/"209d9274b8acc4d2f7265eb56d870053"]
|
||||
Transfer-Encoding: [chunked]
|
||||
Vary: ['Accept-Encoding, Origin']
|
||||
X-Content-Type-Options: [nosniff]
|
||||
X-Frame-Options: [SAMEORIGIN]
|
||||
X-Request-Id: [aaef1378-5102-4267-befe-eccdb9198429]
|
||||
X-Runtime: ['0.026212']
|
||||
X-XSS-Protection: [1; mode=block]
|
||||
content-length: ['2']
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
25
tests/fixtures.py
Normal file
25
tests/fixtures.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
import pytest
|
||||
|
||||
@pytest.fixture
|
||||
def mastodon():
|
||||
import mastodon as _mastodon
|
||||
return _mastodon.Mastodon(
|
||||
api_base_url='http://localhost:3000',
|
||||
client_id='__MASTODON_PY_TEST_ID',
|
||||
client_secret='__MASTODON_PY_TEST_SECRET',
|
||||
access_token='__MASTODON_PY_TEST_TOKEN')
|
||||
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def status(mastodon):
|
||||
_status = mastodon.status_post('Toot!')
|
||||
yield _status
|
||||
mastodon.status_delete(_status['id'])
|
||||
|
||||
@pytest.fixture()
|
||||
def vcr_config():
|
||||
return dict(
|
||||
match_on = ['method', 'path', 'query', 'body'],
|
||||
decode_compressed_response = True
|
||||
)
|
37
tests/setup_app.sql
Normal file
37
tests/setup_app.sql
Normal file
|
@ -0,0 +1,37 @@
|
|||
WITH new_app AS (
|
||||
INSERT INTO oauth_applications (
|
||||
name,
|
||||
uid,
|
||||
secret,
|
||||
redirect_uri,
|
||||
scopes,
|
||||
owner_type,
|
||||
owner_id,
|
||||
created_at,
|
||||
updated_at
|
||||
) VALUES (
|
||||
'Mastodon.py test suite',
|
||||
'__MASTODON_PY_TEST_ID',
|
||||
'__MASTODON_PY_TEST_SECRET',
|
||||
'urn:itef:wg:oauth:2.0:oob',
|
||||
'read write follow',
|
||||
'User',
|
||||
1,
|
||||
now(),
|
||||
now()
|
||||
)
|
||||
RETURNING id
|
||||
)
|
||||
INSERT INTO oauth_access_tokens (
|
||||
token,
|
||||
scopes,
|
||||
application_id,
|
||||
resource_owner_id,
|
||||
created_at
|
||||
) SELECT
|
||||
'__MASTODON_PY_TEST_TOKEN',
|
||||
'read write follow',
|
||||
new_app.id,
|
||||
1,
|
||||
now()
|
||||
FROM new_app;
|
28
tests/test_hooks.py
Normal file
28
tests/test_hooks.py
Normal file
|
@ -0,0 +1,28 @@
|
|||
from .fixtures import *
|
||||
from datetime import datetime
|
||||
|
||||
@pytest.mark.vcr()
|
||||
def test_id_hook(status):
|
||||
assert isinstance(status['id'], int)
|
||||
|
||||
@pytest.mark.vcr()
|
||||
def test_id_hook_in_reply_to(mastodon, status):
|
||||
reply = mastodon.status_post('Reply!', in_reply_to_id=status['id'])
|
||||
try:
|
||||
assert isinstance(reply['in_reply_to_id'], int)
|
||||
assert isinstance(reply['in_reply_to_account_id'], int)
|
||||
finally:
|
||||
mastodon.status_delete(reply['id'])
|
||||
|
||||
@pytest.mark.vcr()
|
||||
def test_id_hook_within_reblog(mastodon, status):
|
||||
reblog = mastodon.status_reblog(status['id'])
|
||||
try:
|
||||
assert isinstance(reblog['reblog']['id'], int)
|
||||
finally:
|
||||
mastodon.status_delete(reblog['id'])
|
||||
|
||||
|
||||
@pytest.mark.vcr()
|
||||
def test_date_hook(status):
|
||||
assert isinstance(status['created_at'], datetime)
|
Loading…
Referencia en una nova incidència