Improve test coverage
This commit is contained in:
parent
fa1c6c97d2
commit
5542d58c36
@ -58,7 +58,6 @@ class Mastodon(Internals):
|
|||||||
'User-Agent': user_agent
|
'User-Agent': user_agent
|
||||||
}
|
}
|
||||||
|
|
||||||
try:
|
|
||||||
if redirect_uris is not None:
|
if redirect_uris is not None:
|
||||||
if isinstance(redirect_uris, (list, tuple)):
|
if isinstance(redirect_uris, (list, tuple)):
|
||||||
redirect_uris = "\n".join(list(redirect_uris))
|
redirect_uris = "\n".join(list(redirect_uris))
|
||||||
@ -67,6 +66,7 @@ class Mastodon(Internals):
|
|||||||
request_data['redirect_uris'] = 'urn:ietf:wg:oauth:2.0:oob'
|
request_data['redirect_uris'] = 'urn:ietf:wg:oauth:2.0:oob'
|
||||||
if website is not None:
|
if website is not None:
|
||||||
request_data['website'] = website
|
request_data['website'] = website
|
||||||
|
try:
|
||||||
if session:
|
if session:
|
||||||
ret = session.post(f"{api_base_url}/api/v1/apps", data=request_data, headers=headers, timeout=request_timeout)
|
ret = session.post(f"{api_base_url}/api/v1/apps", data=request_data, headers=headers, timeout=request_timeout)
|
||||||
response = ret.json()
|
response = ret.json()
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
from mastodon import Mastodon
|
from mastodon import Mastodon, MastodonNetworkError
|
||||||
import pytest
|
import pytest
|
||||||
import requests
|
import requests
|
||||||
|
from requests import HTTPError
|
||||||
import time
|
import time
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -39,11 +40,34 @@ def test_create_app_redirect_uris(mocker):
|
|||||||
kwargs = requests.post.call_args[1]
|
kwargs = requests.post.call_args[1]
|
||||||
assert kwargs['data']['redirect_uris'] == 'http://example.net'
|
assert kwargs['data']['redirect_uris'] == 'http://example.net'
|
||||||
|
|
||||||
|
def test_create_app_multiple_redirect_uris(mocker):
|
||||||
|
test_create_app(mocker, redirect_uris=['http://example.net', 'https://example.net'])
|
||||||
|
kwargs = requests.post.call_args[1]
|
||||||
|
assert kwargs['data']['redirect_uris'] == 'http://example.net\nhttps://example.net'
|
||||||
|
|
||||||
def test_create_app_website(mocker):
|
def test_create_app_website(mocker):
|
||||||
test_create_app(mocker, website='http://example.net')
|
test_create_app(mocker, website='http://example.net')
|
||||||
kwargs = requests.post.call_args[1]
|
kwargs = requests.post.call_args[1]
|
||||||
assert kwargs['data']['website'] == 'http://example.net'
|
assert kwargs['data']['website'] == 'http://example.net'
|
||||||
|
|
||||||
|
def test_create_app_session():
|
||||||
|
resp = Mock(**{'json.return_value': {'client_id': 'foo', 'client_secret': 'bar'}})
|
||||||
|
sess = Mock(**{'post.return_value': resp})
|
||||||
|
|
||||||
|
app = Mastodon.create_app("Mastodon.py test suite", api_base_url="example.com", session=sess)
|
||||||
|
|
||||||
|
assert app == ('foo', 'bar')
|
||||||
|
sess.post.assert_called()
|
||||||
|
|
||||||
|
def test_create_app_error(mocker):
|
||||||
|
def post(_url, **_kwargs):
|
||||||
|
raise HTTPError("Unauthorized")
|
||||||
|
|
||||||
|
mocker.patch('requests.post', side_effect=post)
|
||||||
|
|
||||||
|
with pytest.raises(MastodonNetworkError):
|
||||||
|
Mastodon.create_app("Mastodon.py test suite", api_base_url="example.com")
|
||||||
|
|
||||||
def test_create_app_user_agent(mocker):
|
def test_create_app_user_agent(mocker):
|
||||||
test_create_app(mocker, user_agent="pytest")
|
test_create_app(mocker, user_agent="pytest")
|
||||||
kwargs = requests.post.call_args[1]
|
kwargs = requests.post.call_args[1]
|
||||||
@ -60,7 +84,7 @@ def test_app_account_create():
|
|||||||
# This leaves behind stuff on the test server, which is unfortunate, but eh.
|
# This leaves behind stuff on the test server, which is unfortunate, but eh.
|
||||||
suffix = str(time.time()).replace(".", "")[-5:]
|
suffix = str(time.time()).replace(".", "")[-5:]
|
||||||
|
|
||||||
test_app = test_app = Mastodon.create_app(
|
test_app = Mastodon.create_app(
|
||||||
"mastodon.py generated test app",
|
"mastodon.py generated test app",
|
||||||
api_base_url="http://localhost:3000/"
|
api_base_url="http://localhost:3000/"
|
||||||
)
|
)
|
||||||
@ -80,7 +104,7 @@ def test_app_account_create():
|
|||||||
def test_app_account_create_invalid():
|
def test_app_account_create_invalid():
|
||||||
suffix = str(time.time()).replace(".", "")[-5:]
|
suffix = str(time.time()).replace(".", "")[-5:]
|
||||||
|
|
||||||
test_app = test_app = Mastodon.create_app(
|
test_app = Mastodon.create_app(
|
||||||
"mastodon.py generated test app",
|
"mastodon.py generated test app",
|
||||||
api_base_url="http://localhost:3000/"
|
api_base_url="http://localhost:3000/"
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user