2021-03-08 16:49:10 +00:00
|
|
|
""" style fixes and lookups for templates """
|
2020-12-13 03:34:33 +00:00
|
|
|
from unittest.mock import patch
|
|
|
|
|
|
|
|
from django.test import TestCase
|
|
|
|
|
|
|
|
from bookwyrm import models
|
2022-01-18 20:52:21 +00:00
|
|
|
from bookwyrm.templatetags import book_display_tags
|
2020-12-13 03:34:33 +00:00
|
|
|
|
|
|
|
|
2021-09-06 20:53:49 +00:00
|
|
|
@patch("bookwyrm.activitystreams.add_status_task.delay")
|
2021-09-06 23:59:58 +00:00
|
|
|
@patch("bookwyrm.activitystreams.remove_status_task.delay")
|
2022-01-18 20:52:21 +00:00
|
|
|
@patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async")
|
|
|
|
class BookDisplayTags(TestCase):
|
2021-04-26 16:15:42 +00:00
|
|
|
"""lotta different things here"""
|
2021-03-08 16:49:10 +00:00
|
|
|
|
2023-11-30 05:56:16 +00:00
|
|
|
@classmethod
|
2024-03-17 23:52:20 +00:00
|
|
|
def setUpTestData(cls):
|
2021-04-26 16:15:42 +00:00
|
|
|
"""create some filler objects"""
|
2024-03-17 22:46:30 +00:00
|
|
|
with (
|
|
|
|
patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"),
|
|
|
|
patch("bookwyrm.activitystreams.populate_stream_task.delay"),
|
|
|
|
patch("bookwyrm.lists_stream.populate_lists_task.delay"),
|
|
|
|
):
|
2024-03-17 23:52:20 +00:00
|
|
|
cls.user = models.User.objects.create_user(
|
2021-08-03 15:48:15 +00:00
|
|
|
"mouse@example.com",
|
|
|
|
"mouse@mouse.mouse",
|
|
|
|
"mouseword",
|
|
|
|
local=True,
|
|
|
|
localname="mouse",
|
|
|
|
)
|
2024-03-17 23:52:20 +00:00
|
|
|
cls.book = models.Edition.objects.create(title="Test Book")
|
2020-12-13 03:34:33 +00:00
|
|
|
|
2021-06-14 23:39:54 +00:00
|
|
|
def test_get_book_description(self, *_):
|
2021-04-26 16:15:42 +00:00
|
|
|
"""grab it from the edition or the parent"""
|
2021-08-02 23:05:40 +00:00
|
|
|
work = models.Work.objects.create(title="Test Work")
|
|
|
|
self.book.parent_work = work
|
|
|
|
self.book.save()
|
2020-12-13 03:34:33 +00:00
|
|
|
|
2022-01-18 20:52:21 +00:00
|
|
|
self.assertIsNone(book_display_tags.get_book_description(self.book))
|
2020-12-13 03:34:33 +00:00
|
|
|
|
2021-08-02 23:05:40 +00:00
|
|
|
work.description = "hi"
|
|
|
|
work.save()
|
2022-01-18 20:52:21 +00:00
|
|
|
self.assertEqual(book_display_tags.get_book_description(self.book), "hi")
|
2020-12-13 03:34:33 +00:00
|
|
|
|
2021-08-02 23:05:40 +00:00
|
|
|
self.book.description = "hello"
|
|
|
|
self.book.save()
|
2022-01-18 20:52:21 +00:00
|
|
|
self.assertEqual(book_display_tags.get_book_description(self.book), "hello")
|
|
|
|
|
|
|
|
def test_get_book_file_links(self, *_):
|
|
|
|
"""load approved links"""
|
|
|
|
link = models.FileLink.objects.create(
|
|
|
|
book=self.book,
|
|
|
|
url="https://web.site/hello",
|
|
|
|
)
|
|
|
|
links = book_display_tags.get_book_file_links(self.book)
|
|
|
|
# the link is pending
|
|
|
|
self.assertFalse(links.exists())
|
|
|
|
|
|
|
|
domain = link.domain
|
|
|
|
domain.status = "approved"
|
|
|
|
domain.save()
|
|
|
|
|
|
|
|
links = book_display_tags.get_book_file_links(self.book)
|
|
|
|
self.assertTrue(links.exists())
|
|
|
|
self.assertEqual(links[0], link)
|