From a7a586ea90083bf999e53be0e58c3ae9d10828f7 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Thu, 31 Dec 2020 08:30:51 -0800 Subject: [PATCH] Fixes tagging --- bookwyrm/outgoing.py | 5 ----- bookwyrm/tests/test_view_actions.py | 23 +++++++++++++++++++++++ bookwyrm/view_actions.py | 4 ++-- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/bookwyrm/outgoing.py b/bookwyrm/outgoing.py index aee463c90..38dff400c 100644 --- a/bookwyrm/outgoing.py +++ b/bookwyrm/outgoing.py @@ -283,11 +283,6 @@ def to_markdown(content): return sanitizer.get_output() -def handle_tag(user, tag): - ''' tag a book ''' - broadcast(user, tag.to_add_activity(user)) - - def handle_untag(user, book, name): ''' tag a book ''' book = models.Book.objects.get(id=book) diff --git a/bookwyrm/tests/test_view_actions.py b/bookwyrm/tests/test_view_actions.py index c846c2481..98a57985f 100644 --- a/bookwyrm/tests/test_view_actions.py +++ b/bookwyrm/tests/test_view_actions.py @@ -41,6 +41,9 @@ class ViewActions(TestCase): content='Test status', remote_id='https://example.com/status/1', ) + self.work = models.Work.objects.create(title='Test Work') + self.book = models.Edition.objects.create( + title='Test Book', parent_work=self.work) self.settings = models.SiteSettings.objects.create(id=1) self.factory = RequestFactory() @@ -351,3 +354,23 @@ class ViewActions(TestCase): author.refresh_from_db() self.assertEqual(author.name, 'Test Author') self.assertEqual(resp.template_name, 'edit_author.html') + + + def test_tag(self): + ''' add a tag to a book ''' + request = self.factory.post( + '', { + 'name': 'A Tag!?', + 'book': self.book.id, + }) + request.user = self.local_user + + with patch('bookwyrm.broadcast.broadcast_task.delay'): + actions.tag(request) + + tag = models.Tag.objects.get() + user_tag = models.UserTag.objects.get() + self.assertEqual(tag.name, 'A Tag!?') + self.assertEqual(tag.identifier, 'A+Tag%21%3F') + self.assertEqual(user_tag.user, self.local_user) + self.assertEqual(user_tag.book, self.book) diff --git a/bookwyrm/view_actions.py b/bookwyrm/view_actions.py index 78f762185..ca632ef94 100644 --- a/bookwyrm/view_actions.py +++ b/bookwyrm/view_actions.py @@ -577,14 +577,14 @@ def tag(request): tag_obj, created = models.Tag.objects.get_or_create( name=name, ) - user_tag = models.UserTag.objects.get_or_create( + user_tag, _ = models.UserTag.objects.get_or_create( user=request.user, book=book, tag=tag_obj, ) if created: - outgoing.handle_tag(request.user, user_tag) + broadcast(request.user, user_tag.to_add_activity(request.user)) return redirect('/book/%s' % book_id)