#!/usr/bin/env python3 import pytest from fastapi.testclient import TestClient from sqlalchemy.orm import Session from app import activitypub as ap from app.config import AP_CONTENT_TYPE _ACCEPTED_AP_HEADERS = [ "application/activity+json", "application/activity+json; charset=utf-8", "application/ld+json", 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"', ] def test_index__html(client: TestClient): response = client.get("/") assert response.status_code == 200 assert response.headers["content-type"].startswith("text/html") @pytest.mark.parametrize("accept", _ACCEPTED_AP_HEADERS) def test_index__ap(db: Session, client: TestClient, accept: str): response = client.get("/", headers={"Accept": accept}) assert response.status_code == 200 assert response.headers["content-type"] == AP_CONTENT_TYPE assert response.json() == ap.ME