kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
69 wiersze
2.0 KiB
Python
69 wiersze
2.0 KiB
Python
import pytest
|
|
|
|
from django import forms
|
|
from django.urls import reverse
|
|
|
|
from funkwhale_api.federation import webfinger
|
|
|
|
|
|
def test_webfinger_clean_resource():
|
|
t, r = webfinger.clean_resource('acct:service@test.federation')
|
|
assert t == 'acct'
|
|
assert r == 'service@test.federation'
|
|
|
|
|
|
@pytest.mark.parametrize('resource,message', [
|
|
('', 'Invalid resource string'),
|
|
('service@test.com', 'Missing webfinger resource type'),
|
|
('noop:service@test.com', 'Invalid webfinger resource type'),
|
|
])
|
|
def test_webfinger_clean_resource_errors(resource, message):
|
|
with pytest.raises(forms.ValidationError) as excinfo:
|
|
webfinger.clean_resource(resource)
|
|
|
|
assert message == str(excinfo)
|
|
|
|
|
|
def test_webfinger_clean_acct(settings):
|
|
username, hostname = webfinger.clean_acct('library@test.federation')
|
|
assert username == 'library'
|
|
assert hostname == 'test.federation'
|
|
|
|
|
|
@pytest.mark.parametrize('resource,message', [
|
|
('service', 'Invalid format'),
|
|
('service@test.com', 'Invalid hostname test.com'),
|
|
('noop@test.federation', 'Invalid account'),
|
|
])
|
|
def test_webfinger_clean_acct_errors(resource, message, settings):
|
|
with pytest.raises(forms.ValidationError) as excinfo:
|
|
webfinger.clean_resource(resource)
|
|
|
|
assert message == str(excinfo)
|
|
|
|
|
|
def test_webfinger_get_resource(r_mock):
|
|
resource = 'acct:test@test.webfinger'
|
|
payload = {
|
|
'subject': resource,
|
|
'aliases': ['https://test.webfinger'],
|
|
'links': [
|
|
{
|
|
'rel': 'self',
|
|
'type': 'application/activity+json',
|
|
'href': 'https://test.webfinger/user/test'
|
|
}
|
|
]
|
|
}
|
|
r_mock.get(
|
|
'https://test.webfinger/.well-known/webfinger?resource={}'.format(
|
|
resource
|
|
),
|
|
json=payload
|
|
)
|
|
|
|
data = webfinger.get_resource('acct:test@test.webfinger')
|
|
|
|
assert data['actor_url'] == 'https://test.webfinger/user/test'
|
|
assert data['subject'] == resource
|