bookwyrm/bookwyrm/tests/templatetags/test_book_display_tags.py

66 lines
2.2 KiB
Python

""" style fixes and lookups for templates """
from unittest.mock import patch
from django.test import TestCase
from bookwyrm import models
from bookwyrm.templatetags import book_display_tags
@patch("bookwyrm.activitystreams.add_status_task.delay")
@patch("bookwyrm.activitystreams.remove_status_task.delay")
@patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async")
class BookDisplayTags(TestCase):
"""lotta different things here"""
@classmethod
def setUpTestData(cls):
"""create some filler objects"""
with (
patch("bookwyrm.suggested_users.rerank_suggestions_task.delay"),
patch("bookwyrm.activitystreams.populate_stream_task.delay"),
patch("bookwyrm.lists_stream.populate_lists_task.delay"),
):
cls.user = models.User.objects.create_user(
"mouse@example.com",
"mouse@mouse.mouse",
"mouseword",
local=True,
localname="mouse",
)
cls.book = models.Edition.objects.create(title="Test Book")
def test_get_book_description(self, *_):
"""grab it from the edition or the parent"""
work = models.Work.objects.create(title="Test Work")
self.book.parent_work = work
self.book.save()
self.assertIsNone(book_display_tags.get_book_description(self.book))
work.description = "hi"
work.save()
self.assertEqual(book_display_tags.get_book_description(self.book), "hi")
self.book.description = "hello"
self.book.save()
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)