[test] add send follow nest accept respond test

This commit is contained in:
SouthFox 2023-07-31 05:52:23 +08:00
parent 0813cf226d
commit 7d705e4ce7

View file

@ -45,6 +45,75 @@ async def test_outbox_send_follow_request(
assert outbox_object.ap_type == "Follow" assert outbox_object.ap_type == "Follow"
assert outbox_object.activity_object_ap_id == remote_ap_id assert outbox_object.activity_object_ap_id == remote_ap_id
response = client.post(
"/inbox",
headers={"Content-Type": AP_CONTENT_TYPE},
json={
"@context": ap.AS_CTX,
"type": "Accept",
"id": "https://accept-test",
"actor": remote_ap_id,
"object": outbox_object.ap_id,
},
)
assert response.status_code == 202
# follower was saved in follower table
following_actor = db.execute(select(models.Following)).scalar_one()
assert following_actor.ap_actor_id == remote_ap_id
@pytest.mark.asyncio
async def test_outbox_send_follow_request_nest_accept(
db: Session,
async_db_session,
client: TestClient,
respx_mock: respx.MockRouter,
) -> None:
# build test actor
ra = build_remote_actor()
remote_ap_id = ra.ap_id # type: ignore
# mock request
respx_mock.get(remote_ap_id).mock(
return_value=httpx.Response(200,json=ra.ap_actor))
respx_mock.post(remote_ap_id + "/inbox").mock(
return_value=httpx.Response(202))
from app.boxes import send_follow
async with async_db_session as db_session: #type: ignore
await send_follow(db_session, remote_ap_id)
# And the Follow activity was created in the outbox
outbox_object = db.execute(select(models.OutboxObject)).scalar_one()
assert outbox_object.ap_type == "Follow"
assert outbox_object.activity_object_ap_id == remote_ap_id
response = client.post(
"/inbox",
headers={"Content-Type": AP_CONTENT_TYPE},
json={
"@context": ap.AS_CTX,
"type": "Accept",
"id": "https://accept-test",
"actor": remote_ap_id,
"object": {
"id": outbox_object.ap_id,
"type": "Accept",
"actor": ap.ME["id"],
"object": remote_ap_id,
},
},
)
assert response.status_code == 202
# follower was saved in follower table
following_actor = db.execute(select(models.Following)).scalar_one()
assert following_actor.ap_actor_id == remote_ap_id
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_outbox_send_create_activity( async def test_outbox_send_create_activity(