bookwyrm/bookwyrm/tests/templatetags/test_book_display_tags.py

66 lines
2.2 KiB
Python
Raw Normal View History

2021-03-08 16:49:10 +00:00
""" style fixes and lookups for templates """
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
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
@classmethod
def setUpTestData(cls):
2021-04-26 16:15:42 +00:00
"""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")
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()
2022-01-18 20:52:21 +00:00
self.assertIsNone(book_display_tags.get_book_description(self.book))
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")
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)