summaryrefslogtreecommitdiffstats
path: root/users/tests/test_activitypub.py
blob: 72ab8c36ae78e616eb0973594c84fc6950effa60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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(
        actor_uri="https://example.com/@test@example.com/",
        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
    data = client.get("/@test@example.com/", HTTP_ACCEPT="application/ld+json").json()
    assert data["id"] == "https://example.com/@test@example.com/"