foxhole/tests/factories.py

72 lines
1.7 KiB
Python
Raw Permalink Normal View History

2023-04-07 05:47:13 +02:00
#!/usr/bin/env python3
import factory
2023-04-11 10:07:35 +02:00
import fastapi
2023-04-07 05:47:13 +02:00
import app.activitypub as ap
from app import models
from sqlalchemy import orm
from app import activitypub as ap
from app import actor
from app import models
from app.database import SessionLocal
_Session = orm.scoped_session(SessionLocal)
class BaseModelMeta:
sqlalchemy_session = _Session
sqlalchemy_session_persistence = "commit"
class RemoteActorFactory(factory.Factory): # pyright: disable
class Meta:
model = ap.BaseActor
exclude = (
"base_url",
"username",
"public_key",
"also_known_as",
)
ap_actor = factory.LazyAttribute(
lambda o: {
"@context": ap.AS_CTX,
"type": "Person",
"id": o.base_url,
"following": o.base_url + "/following",
"followers": o.base_url + "/followers",
"inbox": o.base_url + "/inbox",
"outbox": o.base_url + "/outbox",
"preferredUsername": o.username,
"name": o.username,
"summary": "test user",
"endpoints": {},
"url": o.base_url,
"manuallyApprovesFollowers": False,
"attachment": [],
"icon": {},
"publicKey": {
"id": f"{o.base_url}#main-key",
"owner": o.base_url,
"publicKeyPem": o.public_key,
},
"alsoKnownAs": [],
}
)
class ActorFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta(BaseModelMeta):
model = models.Actor
ap_type = "Person"
ap_id = "stub"
2023-04-11 10:07:35 +02:00
async def inbox_prechecker(
request: fastapi.Request,
) -> bool:
return True