From 58b48faff870723a8aba0bf745756c82c266c6ed Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 8 Mar 2021 10:48:45 -0800 Subject: [PATCH] Tests create books flow --- bookwyrm/tests/views/test_book.py | 29 +++++++++++++++++++++++++++++ bookwyrm/views/books.py | 3 +-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/bookwyrm/tests/views/test_book.py b/bookwyrm/tests/views/test_book.py index 02493769..90b7359d 100644 --- a/bookwyrm/tests/views/test_book.py +++ b/bookwyrm/tests/views/test_book.py @@ -140,6 +140,35 @@ class BookViews(TestCase): self.assertEqual(self.book.title, "New Title") self.assertFalse(self.book.authors.exists()) + def test_create_book(self): + """ create an entirely new book and work """ + view = views.ConfirmEditBook.as_view() + self.local_user.groups.add(self.group) + form = forms.EditionForm() + form.data["title"] = "New Title" + form.data["last_edited_by"] = self.local_user.id + request = self.factory.post("", form.data) + request.user = self.local_user + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + view(request) + book = models.Edition.objects.get(title="New Title") + self.assertEqual(book.parent_work.title, "New Title") + + def test_create_book_existing_work(self): + """ create an entirely new book and work """ + view = views.ConfirmEditBook.as_view() + self.local_user.groups.add(self.group) + form = forms.EditionForm() + form.data["title"] = "New Title" + form.data["parent_work"] = self.work.id + form.data["last_edited_by"] = self.local_user.id + request = self.factory.post("", form.data) + request.user = self.local_user + with patch("bookwyrm.models.activitypub_mixin.broadcast_task.delay"): + view(request) + book = models.Edition.objects.get(title="New Title") + self.assertEqual(book.parent_work, self.work) + def test_switch_edition(self): """ updates user's relationships to a book """ work = models.Work.objects.create(title="test work") diff --git a/bookwyrm/views/books.py b/bookwyrm/views/books.py index 55cc75b4..ecba4376 100644 --- a/bookwyrm/views/books.py +++ b/bookwyrm/views/books.py @@ -1,5 +1,4 @@ """ the good stuff! the books! """ -from django.core.paginator import Paginator from django.contrib.auth.decorators import login_required, permission_required from django.contrib.postgres.search import SearchRank, SearchVector from django.core.paginator import Paginator @@ -207,7 +206,7 @@ class ConfirmEditBook(View): if work_match: work = get_object_or_404(models.Work, id=work_match) else: - work = models.Work.objects.create(title=form.cleaned_data.title) + work = models.Work.objects.create(title=form.cleaned_data["title"]) work.authors.set(book.authors.all()) book.parent_work = work book.save()