Merge branch 'main' into html-in-activitypub
This commit is contained in:
commit
bffde6703c
102 changed files with 4828 additions and 2907 deletions
|
@ -191,14 +191,14 @@ class Status(TestCase):
|
|||
self.assertEqual(activity["type"], "Note")
|
||||
self.assertEqual(activity["sensitive"], False)
|
||||
self.assertIsInstance(activity["attachment"], list)
|
||||
self.assertEqual(activity["attachment"][0].type, "Document")
|
||||
self.assertEqual(activity["attachment"][0]["type"], "Document")
|
||||
self.assertTrue(
|
||||
re.match(
|
||||
r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg",
|
||||
activity["attachment"][0].url,
|
||||
activity["attachment"][0]["url"],
|
||||
)
|
||||
)
|
||||
self.assertEqual(activity["attachment"][0].name, "Test Edition")
|
||||
self.assertEqual(activity["attachment"][0]["name"], "Test Edition")
|
||||
|
||||
def test_comment_to_activity(self, *_):
|
||||
"""subclass of the base model version with a "pure" serializer"""
|
||||
|
@ -223,14 +223,14 @@ class Status(TestCase):
|
|||
activity["content"],
|
||||
f'test content<p>(comment on <a href="{self.book.remote_id}">"Test Edition"</a>)</p>',
|
||||
)
|
||||
self.assertEqual(activity["attachment"][0].type, "Document")
|
||||
self.assertEqual(activity["attachment"][0]["type"], "Document")
|
||||
# self.assertTrue(
|
||||
# re.match(
|
||||
# r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg",
|
||||
# activity["attachment"][0].url,
|
||||
# )
|
||||
# )
|
||||
self.assertEqual(activity["attachment"][0].name, "Test Edition")
|
||||
self.assertEqual(activity["attachment"][0]["name"], "Test Edition")
|
||||
|
||||
def test_quotation_to_activity(self, *_):
|
||||
"""subclass of the base model version with a "pure" serializer"""
|
||||
|
@ -262,14 +262,14 @@ class Status(TestCase):
|
|||
activity["content"],
|
||||
f'a sickening sense <p>-- <a href="{self.book.remote_id}">"Test Edition"</a></p>test content',
|
||||
)
|
||||
self.assertEqual(activity["attachment"][0].type, "Document")
|
||||
self.assertEqual(activity["attachment"][0]["type"], "Document")
|
||||
self.assertTrue(
|
||||
re.match(
|
||||
r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg",
|
||||
activity["attachment"][0].url,
|
||||
activity["attachment"][0]["url"],
|
||||
)
|
||||
)
|
||||
self.assertEqual(activity["attachment"][0].name, "Test Edition")
|
||||
self.assertEqual(activity["attachment"][0]["name"], "Test Edition")
|
||||
|
||||
def test_review_to_activity(self, *_):
|
||||
"""subclass of the base model version with a "pure" serializer"""
|
||||
|
@ -305,14 +305,14 @@ class Status(TestCase):
|
|||
f'Review of "{self.book.title}" (3 stars): Review\'s name',
|
||||
)
|
||||
self.assertEqual(activity["content"], "test content")
|
||||
self.assertEqual(activity["attachment"][0].type, "Document")
|
||||
self.assertEqual(activity["attachment"][0]["type"], "Document")
|
||||
self.assertTrue(
|
||||
re.match(
|
||||
r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg",
|
||||
activity["attachment"][0].url,
|
||||
activity["attachment"][0]["url"],
|
||||
)
|
||||
)
|
||||
self.assertEqual(activity["attachment"][0].name, "Test Edition")
|
||||
self.assertEqual(activity["attachment"][0]["name"], "Test Edition")
|
||||
|
||||
def test_review_to_pure_activity_no_rating(self, *_):
|
||||
"""subclass of the base model version with a "pure" serializer"""
|
||||
|
@ -330,14 +330,14 @@ class Status(TestCase):
|
|||
f'Review of "{self.book.title}": Review name',
|
||||
)
|
||||
self.assertEqual(activity["content"], "test content")
|
||||
self.assertEqual(activity["attachment"][0].type, "Document")
|
||||
self.assertEqual(activity["attachment"][0]["type"], "Document")
|
||||
self.assertTrue(
|
||||
re.match(
|
||||
r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg",
|
||||
activity["attachment"][0].url,
|
||||
activity["attachment"][0]["url"],
|
||||
)
|
||||
)
|
||||
self.assertEqual(activity["attachment"][0].name, "Test Edition")
|
||||
self.assertEqual(activity["attachment"][0]["name"], "Test Edition")
|
||||
|
||||
def test_reviewrating_to_pure_activity(self, *_):
|
||||
"""subclass of the base model version with a "pure" serializer"""
|
||||
|
@ -353,14 +353,14 @@ class Status(TestCase):
|
|||
activity["content"],
|
||||
f'rated <em><a href="{self.book.remote_id}">{self.book.title}</a></em>: 3 stars',
|
||||
)
|
||||
self.assertEqual(activity["attachment"][0].type, "Document")
|
||||
self.assertEqual(activity["attachment"][0]["type"], "Document")
|
||||
self.assertTrue(
|
||||
re.match(
|
||||
r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg",
|
||||
activity["attachment"][0].url,
|
||||
activity["attachment"][0]["url"],
|
||||
)
|
||||
)
|
||||
self.assertEqual(activity["attachment"][0].name, "Test Edition")
|
||||
self.assertEqual(activity["attachment"][0]["name"], "Test Edition")
|
||||
|
||||
def test_favorite(self, *_):
|
||||
"""fav a status"""
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
""" testing models """
|
||||
import json
|
||||
from unittest.mock import patch
|
||||
from django.contrib.auth.models import Group
|
||||
from django.test import TestCase
|
||||
import responses
|
||||
|
||||
from bookwyrm import models
|
||||
from bookwyrm.management.commands import initdb
|
||||
from bookwyrm.settings import USE_HTTPS, DOMAIN
|
||||
|
||||
# pylint: disable=missing-class-docstring
|
||||
|
@ -12,6 +14,7 @@ from bookwyrm.settings import USE_HTTPS, DOMAIN
|
|||
class User(TestCase):
|
||||
protocol = "https://" if USE_HTTPS else "http://"
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
def setUp(self):
|
||||
with patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"), patch(
|
||||
"bookwyrm.activitystreams.populate_stream_task.delay"
|
||||
|
@ -25,6 +28,17 @@ class User(TestCase):
|
|||
name="hi",
|
||||
bookwyrm_user=False,
|
||||
)
|
||||
self.another_user = models.User.objects.create_user(
|
||||
f"nutria@{DOMAIN}",
|
||||
"nutria@nutria.nutria",
|
||||
"nutriaword",
|
||||
local=True,
|
||||
localname="nutria",
|
||||
name="hi",
|
||||
bookwyrm_user=False,
|
||||
)
|
||||
initdb.init_groups()
|
||||
initdb.init_permissions()
|
||||
|
||||
def test_computed_fields(self):
|
||||
"""username instead of id here"""
|
||||
|
@ -176,3 +190,41 @@ class User(TestCase):
|
|||
self.assertEqual(activity["type"], "Delete")
|
||||
self.assertEqual(activity["object"], self.user.remote_id)
|
||||
self.assertFalse(self.user.is_active)
|
||||
|
||||
def test_admins_no_admins(self):
|
||||
"""list of admins"""
|
||||
result = models.User.admins()
|
||||
self.assertFalse(result.exists())
|
||||
|
||||
def test_admins_superuser(self):
|
||||
"""list of admins"""
|
||||
self.user.is_superuser = True
|
||||
self.user.save(broadcast=False, update_fields=["is_superuser"])
|
||||
result = models.User.admins()
|
||||
self.assertEqual(result.count(), 1)
|
||||
self.assertEqual(result.first(), self.user)
|
||||
|
||||
def test_admins_superuser_and_mod(self):
|
||||
"""list of admins"""
|
||||
self.user.is_superuser = True
|
||||
self.user.save(broadcast=False, update_fields=["is_superuser"])
|
||||
group = Group.objects.get(name="moderator")
|
||||
self.another_user.groups.set([group])
|
||||
|
||||
results = models.User.admins()
|
||||
self.assertEqual(results.count(), 2)
|
||||
self.assertTrue(results.filter(id=self.user.id).exists())
|
||||
self.assertTrue(results.filter(id=self.another_user.id).exists())
|
||||
|
||||
def test_admins_deleted_mod(self):
|
||||
"""list of admins"""
|
||||
self.user.is_superuser = True
|
||||
self.user.save(broadcast=False, update_fields=["is_superuser"])
|
||||
group = Group.objects.get(name="moderator")
|
||||
self.another_user.groups.set([group])
|
||||
self.another_user.is_active = False
|
||||
self.another_user.save(broadcast=False, update_fields=None)
|
||||
|
||||
results = models.User.admins()
|
||||
self.assertEqual(results.count(), 1)
|
||||
self.assertEqual(results.first(), self.user)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue