little-boxes/tests/test_webfinger.py

59 wiersze
1.6 KiB
Python
Czysty Zwykły widok Historia

2018-06-15 22:11:53 +00:00
import json
2018-06-15 22:27:49 +00:00
import logging
from unittest import mock
2018-06-15 21:53:40 +00:00
2018-06-15 22:27:49 +00:00
import pytest
from little_boxes import urlutils
from little_boxes import webfinger
2018-06-15 22:11:53 +00:00
2018-07-20 22:43:34 +00:00
import httpretty
2018-06-15 21:53:40 +00:00
logging.basicConfig(level=logging.DEBUG)
_WEBFINGER_RESP = {
"aliases": ["https://microblog.pub"],
"links": [
{
"href": "https://microblog.pub",
"rel": "http://webfinger.net/rel/profile-page",
"type": "text/html",
},
{
"href": "https://microblog.pub",
"rel": "self",
"type": "application/activity+json",
},
{
"rel": "http://ostatus.org/schema/1.0/subscribe",
"template": "https://microblog.pub/authorize_follow?profile={uri}",
},
],
"subject": "acct:dev@microblog.pub",
}
2018-06-15 22:11:53 +00:00
@mock.patch("little_boxes.webfinger.check_url", return_value=None)
2018-06-18 19:08:23 +00:00
@mock.patch("little_boxes.backend.check_url", return_value=None)
2018-06-15 22:11:53 +00:00
@httpretty.activate
2018-06-18 19:08:23 +00:00
def test_webfinger(_, _1):
2018-06-15 22:11:53 +00:00
# FIXME(tsileo): it should try https first
httpretty.register_uri(
httpretty.GET,
2019-02-24 19:43:27 +00:00
"https://microblog.pub/.well-known/webfinger",
2018-06-15 22:11:53 +00:00
body=json.dumps(_WEBFINGER_RESP),
)
2018-06-15 21:53:40 +00:00
data = webfinger.webfinger("@dev@microblog.pub")
assert data == _WEBFINGER_RESP
2018-06-15 22:11:53 +00:00
assert webfinger.get_actor_url("@dev@microblog.pub") == "https://microblog.pub"
assert (
webfinger.get_remote_follow_template("@dev@microblog.pub")
== "https://microblog.pub/authorize_follow?profile={uri}"
)
2018-06-15 22:27:49 +00:00
def test_webfinger_invalid_url():
with pytest.raises(urlutils.InvalidURLError):
2018-06-18 19:08:23 +00:00
webfinger.webfinger("@dev@localhost:8080")