2022-11-16 21:23:32 -08:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
from users.models import Domain, Identity, User
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.django_db
|
|
|
|
def test_webfinger_actor(client):
|
|
|
|
"""
|
|
|
|
Ensures the webfinger and actor URLs are working properly
|
|
|
|
"""
|
|
|
|
# Make a user
|
|
|
|
user = User.objects.create(email="test@example.com")
|
|
|
|
# Make a domain
|
|
|
|
domain = Domain.objects.create(domain="example.com", local=True)
|
|
|
|
domain.users.add(user)
|
|
|
|
# Make an identity for them
|
|
|
|
identity = Identity.objects.create(
|
2022-11-20 10:37:26 -08:00
|
|
|
actor_uri="https://example.com/@test@example.com/",
|
2022-11-16 21:23:32 -08:00
|
|
|
username="test",
|
|
|
|
domain=domain,
|
|
|
|
name="Test User",
|
|
|
|
local=True,
|
|
|
|
)
|
|
|
|
identity.generate_keypair()
|
|
|
|
# Fetch their webfinger
|
|
|
|
data = client.get("/.well-known/webfinger?resource=acct:test@example.com").json()
|
|
|
|
assert data["subject"] == "acct:test@example.com"
|
|
|
|
assert data["aliases"][0] == "https://example.com/@test/"
|
|
|
|
# Fetch their actor
|
2022-11-20 10:37:26 -08:00
|
|
|
data = client.get("/@test@example.com/", HTTP_ACCEPT="application/ld+json").json()
|
|
|
|
assert data["id"] == "https://example.com/@test@example.com/"
|