Merge pull request #1929 from bookwyrm-social/link-federation

Use correct model type for federated links
This commit is contained in:
Mouse Reeve 2022-02-09 09:30:26 -08:00 committed by GitHub
commit 542957364c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 3 deletions

View file

@ -227,7 +227,7 @@ def set_related_field(
model_field = getattr(model, related_field_name)
if hasattr(model_field, "activitypub_field"):
setattr(activity, getattr(model_field, "activitypub_field"), instance.remote_id)
item = activity.to_model()
item = activity.to_model(model=model)
# if the related field isn't serialized (attachments on Status), then
# we have to set it post-creation
@ -298,6 +298,7 @@ class Link(ActivityObject):
mediaType: str = None
id: str = None
attributedTo: str = None
availability: str = None
type: str = "Link"
def serialize(self, **kwargs):

View file

@ -1,7 +1,6 @@
""" testing models """
from dateutil.parser import parse
from imagekit.models import ImageSpecField
from django.test import TestCase
from django.utils import timezone

View file

@ -80,6 +80,15 @@ class LinkViews(TestCase):
activity = json.loads(mock.call_args[1]["args"][1])
self.assertEqual(activity["type"], "Update")
self.assertEqual(activity["object"]["type"], "Edition")
self.assertIsInstance(activity["object"]["fileLinks"], list)
self.assertEqual(
activity["object"]["fileLinks"][0]["href"], "https://www.example.com"
)
self.assertEqual(activity["object"]["fileLinks"][0]["mediaType"], "HTML")
self.assertEqual(
activity["object"]["fileLinks"][0]["attributedTo"],
self.local_user.remote_id,
)
link = models.FileLink.objects.get()
self.assertEqual(link.name, "www.example.com")

View file

@ -6,7 +6,6 @@ from unittest.mock import patch
from django.test import TestCase
from bookwyrm import models, views
from bookwyrm.activitypub.base_activity import set_related_field
# pylint: disable=too-many-public-methods