Skip to content

Commit

Permalink
celery inmem test suite: tests/{importers,lists_stream,management}
Browse files Browse the repository at this point in the history
  • Loading branch information
dato committed Jul 29, 2024
1 parent d65d0ef commit f7f974f
Show file tree
Hide file tree
Showing 11 changed files with 257 additions and 397 deletions.
23 changes: 6 additions & 17 deletions bookwyrm/tests/importers/test_calibre_import.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
""" testing import """
import pathlib
from unittest.mock import patch

from django.test import TestCase

from bookwyrm import models
from bookwyrm.importers import CalibreImporter
from bookwyrm.models.import_job import handle_imported_book


@patch("bookwyrm.suggested_users.rerank_suggestions_task.delay")
@patch("bookwyrm.activitystreams.populate_stream_task.delay")
@patch("bookwyrm.activitystreams.add_book_statuses_task.delay")
class CalibreImport(TestCase):
"""importing from Calibre csv"""

Expand All @@ -29,14 +24,9 @@ def tearDown(self):
@classmethod
def setUpTestData(cls):
"""populate database"""
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.local_user = models.User.objects.create_user(
"mouse", "mouse@mouse.mouse", "password", local=True
)
cls.local_user = models.User.objects.create_user(
"mouse", "mouse@mouse.mouse", "password", local=True
)
models.SiteSettings.objects.create()
work = models.Work.objects.create(title="Test Work")
cls.book = models.Edition.objects.create(
Expand All @@ -45,7 +35,7 @@ def setUpTestData(cls):
parent_work=work,
)

def test_create_job(self, *_):
def test_create_job(self):
"""creates the import job entry and checks csv"""
import_job = self.importer.create_job(
self.local_user, self.csv, False, "public"
Expand All @@ -60,7 +50,7 @@ def test_create_job(self, *_):
import_items[0].normalized_data["title"], "That Ain't Witchcraft"
)

def test_handle_imported_book(self, *_):
def test_handle_imported_book(self):
"""calibre import added a book, this adds related connections"""
shelf = self.local_user.shelf_set.filter(
identifier=models.Shelf.TO_READ
Expand All @@ -74,8 +64,7 @@ def test_handle_imported_book(self, *_):
import_item.book = self.book
import_item.save()

with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
handle_imported_book(import_item)
handle_imported_book(import_item)

shelf.refresh_from_db()
self.assertEqual(shelf.books.first(), self.book)
36 changes: 11 additions & 25 deletions bookwyrm/tests/importers/test_goodreads_import.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
""" testing import """
import pathlib
from unittest.mock import patch
import datetime

from django.test import TestCase
Expand All @@ -15,9 +14,6 @@ def make_date(*args):
return datetime.datetime(*args, tzinfo=datetime.timezone.utc)


@patch("bookwyrm.suggested_users.rerank_suggestions_task.delay")
@patch("bookwyrm.activitystreams.populate_stream_task.delay")
@patch("bookwyrm.activitystreams.add_book_statuses_task.delay")
class GoodreadsImport(TestCase):
"""importing from goodreads csv"""

Expand All @@ -35,14 +31,9 @@ def tearDown(self):
@classmethod
def setUpTestData(cls):
"""populate database"""
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.local_user = models.User.objects.create_user(
"mouse", "mouse@mouse.mouse", "password", local=True
)
cls.local_user = models.User.objects.create_user(
"mouse", "mouse@mouse.mouse", "password", local=True
)
models.SiteSettings.objects.create()
work = models.Work.objects.create(title="Test Work")
cls.book = models.Edition.objects.create(
Expand All @@ -51,7 +42,7 @@ def setUpTestData(cls):
parent_work=work,
)

def test_create_job(self, *_):
def test_create_job(self):
"""creates the import job entry and checks csv"""
import_job = self.importer.create_job(
self.local_user, self.csv, False, "public"
Expand All @@ -69,7 +60,7 @@ def test_create_job(self, *_):
self.assertEqual(import_items[2].index, 2)
self.assertEqual(import_items[2].data["Book Id"], "28694510")

def test_create_retry_job(self, *_):
def test_create_retry_job(self):
"""trying again with items that didn't import"""
import_job = self.importer.create_job(
self.local_user, self.csv, False, "unlisted"
Expand All @@ -91,7 +82,7 @@ def test_create_retry_job(self, *_):
self.assertEqual(retry_items[1].index, 1)
self.assertEqual(retry_items[1].data["Book Id"], "52691223")

def test_handle_imported_book(self, *_):
def test_handle_imported_book(self):
"""goodreads import added a book, this adds related connections"""
shelf = self.local_user.shelf_set.filter(
identifier=models.Shelf.READ_FINISHED
Expand All @@ -105,8 +96,7 @@ def test_handle_imported_book(self, *_):
import_item.book = self.book
import_item.save()

with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
handle_imported_book(import_item)
handle_imported_book(import_item)

shelf.refresh_from_db()
self.assertEqual(shelf.books.first(), self.book)
Expand All @@ -119,8 +109,7 @@ def test_handle_imported_book(self, *_):
self.assertEqual(readthrough.start_date, make_date(2020, 10, 21))
self.assertEqual(readthrough.finish_date, make_date(2020, 10, 25))

@patch("bookwyrm.activitystreams.add_status_task.delay")
def test_handle_imported_book_review(self, *_):
def test_handle_imported_book_review(self):
"""goodreads review import"""
import_job = self.importer.create_job(
self.local_user, self.csv, True, "unlisted"
Expand All @@ -129,17 +118,15 @@ def test_handle_imported_book_review(self, *_):
import_item.book = self.book
import_item.save()

with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
handle_imported_book(import_item)
handle_imported_book(import_item)

review = models.Review.objects.get(book=self.book, user=self.local_user)
self.assertEqual(review.content, "mixed feelings")
self.assertEqual(review.rating, 2)
self.assertEqual(review.published_date, make_date(2019, 7, 8))
self.assertEqual(review.privacy, "unlisted")

@patch("bookwyrm.activitystreams.add_status_task.delay")
def test_handle_imported_book_rating(self, *_):
def test_handle_imported_book_rating(self):
"""goodreads rating import"""
import_job = self.importer.create_job(
self.local_user, self.csv, True, "unlisted"
Expand All @@ -148,8 +135,7 @@ def test_handle_imported_book_rating(self, *_):
import_item.book = self.book
import_item.save()

with patch("bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"):
handle_imported_book(import_item)
handle_imported_book(import_item)

review = models.ReviewRating.objects.get(book=self.book, user=self.local_user)
self.assertIsInstance(review, models.ReviewRating)
Expand Down
Loading

0 comments on commit f7f974f

Please sign in to comment.