Merge branch 'main' into readthrough-dates
This commit is contained in:
@ -146,6 +146,15 @@ class ModelFields(TestCase):
|
||||
def test_privacy_field_set_field_from_activity(self, _):
|
||||
"""translate between to/cc fields and privacy"""
|
||||
|
||||
with patch("bookwyrm.models.user.set_remote_server.delay"):
|
||||
test_user = User.objects.create_user(
|
||||
username="test_user@example.com",
|
||||
local=False,
|
||||
remote_id="https://example.com/test_user",
|
||||
inbox="https://example.com/users/test_user/inbox",
|
||||
followers_url="https://example.com/users/test_user/followers",
|
||||
)
|
||||
|
||||
@dataclass(init=False)
|
||||
class TestActivity(ActivityObject):
|
||||
"""real simple mock"""
|
||||
@ -154,6 +163,7 @@ class ModelFields(TestCase):
|
||||
cc: List[str]
|
||||
id: str = "http://hi.com"
|
||||
type: str = "Test"
|
||||
attributedTo: str = test_user.remote_id
|
||||
|
||||
class TestPrivacyModel(ActivitypubMixin, BookWyrmModel):
|
||||
"""real simple mock model because BookWyrmModel is abstract"""
|
||||
@ -185,6 +195,16 @@ class ModelFields(TestCase):
|
||||
instance.set_field_from_activity(model_instance, data)
|
||||
self.assertEqual(model_instance.privacy_field, "unlisted")
|
||||
|
||||
data.to = [test_user.followers_url]
|
||||
data.cc = []
|
||||
instance.set_field_from_activity(model_instance, data)
|
||||
self.assertEqual(model_instance.privacy_field, "followers")
|
||||
|
||||
data.to = ["http://user_remote/followers"]
|
||||
data.cc = ["http://mentioned_user/remote_id"]
|
||||
instance.set_field_from_activity(model_instance, data)
|
||||
self.assertEqual(model_instance.privacy_field, "followers")
|
||||
|
||||
@patch("bookwyrm.models.activitypub_mixin.ObjectMixin.broadcast")
|
||||
@patch("bookwyrm.activitystreams.ActivityStream.add_status")
|
||||
def test_privacy_field_set_activity_from_field(self, *_):
|
||||
|
@ -5,11 +5,13 @@ from django.test import TestCase
|
||||
import responses
|
||||
|
||||
from bookwyrm import models
|
||||
from bookwyrm.settings import DOMAIN
|
||||
from bookwyrm.settings import USE_HTTPS, DOMAIN
|
||||
|
||||
# pylint: disable=missing-class-docstring
|
||||
# pylint: disable=missing-function-docstring
|
||||
class User(TestCase):
|
||||
protocol = "https://" if USE_HTTPS else "http://"
|
||||
|
||||
def setUp(self):
|
||||
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"):
|
||||
self.user = models.User.objects.create_user(
|
||||
@ -24,13 +26,14 @@ class User(TestCase):
|
||||
|
||||
def test_computed_fields(self):
|
||||
"""username instead of id here"""
|
||||
expected_id = "https://%s/user/mouse" % DOMAIN
|
||||
expected_id = f"{self.protocol}{DOMAIN}/user/mouse"
|
||||
self.assertEqual(self.user.remote_id, expected_id)
|
||||
self.assertEqual(self.user.username, "mouse@%s" % DOMAIN)
|
||||
self.assertEqual(self.user.username, f"mouse@{DOMAIN}")
|
||||
self.assertEqual(self.user.localname, "mouse")
|
||||
self.assertEqual(self.user.shared_inbox, "https://%s/inbox" % DOMAIN)
|
||||
self.assertEqual(self.user.inbox, "%s/inbox" % expected_id)
|
||||
self.assertEqual(self.user.outbox, "%s/outbox" % expected_id)
|
||||
self.assertEqual(self.user.shared_inbox, f"{self.protocol}{DOMAIN}/inbox")
|
||||
self.assertEqual(self.user.inbox, f"{expected_id}/inbox")
|
||||
self.assertEqual(self.user.outbox, f"{expected_id}/outbox")
|
||||
self.assertEqual(self.user.followers_url, f"{expected_id}/followers")
|
||||
self.assertIsNotNone(self.user.key_pair.private_key)
|
||||
self.assertIsNotNone(self.user.key_pair.public_key)
|
||||
|
||||
|
Reference in New Issue
Block a user