Esempio n. 1
0
    def test_report_modal_view(self):
        """a user reports another user"""
        request = self.factory.get("")
        request.user = self.local_user
        result = views.Report.as_view()(request, self.local_user.id)

        validate_html(result.render())
Esempio n. 2
0
    def test_lists_page(self, _):
        """there are so many views, this just makes sure it LOADS"""
        view = views.Lists.as_view()
        with patch(
                "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
        ), patch("bookwyrm.lists_stream.add_list_task.delay"):
            models.List.objects.create(name="Public list",
                                       user=self.local_user)
            models.List.objects.create(name="Private list",
                                       privacy="direct",
                                       user=self.local_user)
        request = self.factory.get("")
        request.user = self.local_user

        result = view(request)
        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)

        request.user = self.anonymous_user

        result = view(request)
        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)
Esempio n. 3
0
    def test_embed_call_with_key(self):
        """there are so many views, this just makes sure it LOADS"""
        view = views.unsafe_embed_list
        request = self.factory.get("")
        request.user = self.anonymous_user
        with patch(
                "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
        ):
            models.ListItem.objects.create(
                book_list=self.list,
                user=self.local_user,
                book=self.book,
                approved=True,
                order=1,
            )

        embed_key = str(self.list.embed_key.hex)

        with patch("bookwyrm.views.list.list.is_api_request") as is_api:
            is_api.return_value = False
            result = view(request, self.list.id, embed_key)

        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)
Esempio n. 4
0
    def test_status_page_with_image(self, *_):
        """there are so many views, this just makes sure it LOADS"""
        view = views.Status.as_view()

        image_file = pathlib.Path(__file__).parent.joinpath(
            "../../static/images/default_avi.jpg")
        image = Image.open(image_file)
        output = BytesIO()
        image.save(output, format=image.format)
        with patch(
                "bookwyrm.models.activitypub_mixin.broadcast_task.apply_async"
        ):
            status = models.Review.objects.create(
                content="hi",
                user=self.local_user,
                book=self.book,
            )
            attachment = models.Image.objects.create(status=status,
                                                     caption="alt text here")
            attachment.image.save("test.jpg", ContentFile(output.getvalue()))

        request = self.factory.get("")
        request.user = self.local_user
        with patch("bookwyrm.views.feed.is_api_request") as is_api:
            is_api.return_value = False
            result = view(request, "mouse", status.id)
        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)

        with patch("bookwyrm.views.feed.is_api_request") as is_api:
            is_api.return_value = True
            result = view(request, "mouse", status.id)
        self.assertIsInstance(result, ActivitypubResponse)
        self.assertEqual(result.status_code, 200)
Esempio n. 5
0
    def test_shelf_page(self, *_):
        """there are so many views, this just makes sure it LOADS"""
        view = views.Shelf.as_view()
        shelf = self.local_user.shelf_set.first()
        request = self.factory.get("")
        request.user = self.local_user
        with patch("bookwyrm.views.shelf.shelf.is_api_request") as is_api:
            is_api.return_value = False
            result = view(request, self.local_user.username, shelf.identifier)
        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)

        with patch("bookwyrm.views.shelf.shelf.is_api_request") as is_api:
            is_api.return_value = True
            result = view(request, self.local_user.username, shelf.identifier)
        self.assertIsInstance(result, ActivitypubResponse)
        self.assertEqual(result.status_code, 200)

        request = self.factory.get("/?page=1")
        request.user = self.local_user
        with patch("bookwyrm.views.shelf.shelf.is_api_request") as is_api:
            is_api.return_value = True
            result = view(request, self.local_user.username, shelf.identifier)
        self.assertIsInstance(result, ActivitypubResponse)
        self.assertEqual(result.status_code, 200)
Esempio n. 6
0
 def test_notifications_page_notifications(self):
     """there are so many views, this just makes sure it LOADS"""
     models.Notification.objects.create(
         user=self.local_user,
         notification_type="FAVORITE",
         related_status=self.status,
     )
     models.Notification.objects.create(
         user=self.local_user,
         notification_type="BOOST",
         related_status=self.status,
     )
     models.Notification.objects.create(
         user=self.local_user,
         notification_type="MENTION",
         related_status=self.status,
     )
     self.status.reply_parent = self.status
     self.status.save(broadcast=False)
     models.Notification.objects.create(
         user=self.local_user,
         notification_type="REPLY",
         related_status=self.status,
     )
     view = views.Notifications.as_view()
     request = self.factory.get("")
     request.user = self.local_user
     result = view(request)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 7
0
    def test_user_page(self):
        """there are so many views, this just makes sure it LOADS"""
        # extras that are rendered on the user page
        models.AnnualGoal.objects.create(user=self.local_user,
                                         goal=12,
                                         privacy="followers")

        view = views.User.as_view()
        request = self.factory.get("")
        request.user = self.local_user
        with patch("bookwyrm.views.user.is_api_request") as is_api:
            is_api.return_value = False
            result = view(request, "mouse")
        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)

        request.user = self.anonymous_user
        with patch("bookwyrm.views.user.is_api_request") as is_api:
            is_api.return_value = False
            result = view(request, "mouse")
        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)

        with patch("bookwyrm.views.user.is_api_request") as is_api:
            is_api.return_value = True
            result = view(request, "mouse")
        self.assertIsInstance(result, ActivitypubResponse)
        self.assertEqual(result.status_code, 200)
Esempio n. 8
0
 def test_remote_follow_page(self, *_):
     """check remote follow page loads"""
     request = self.factory.get("", {"acct": "*****@*****.**"})
     request.user = self.remote_user
     result = views.remote_follow_page(request)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 9
0
 def test_delete_user_page(self, _):
     """there are so many views, this just makes sure it LOADS"""
     view = views.DeleteUser.as_view()
     request = self.factory.get("")
     request.user = self.local_user
     result = view(request)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 10
0
 def test_remote_follow(self, *_):
     """check follow from remote page loads"""
     request = self.factory.post("", {"user": self.remote_user.id})
     request.user = self.remote_user
     request.remote_user = "******"
     result = views.remote_follow(request)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 11
0
 def test_ostatus_follow_success(self, *_):
     """check remote follow success page loads"""
     request = self.factory.get("")
     request.user = self.remote_user
     request.following = "*****@*****.**"
     result = views.ostatus_follow_success(request)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 12
0
 def test_usergroups_get(self, _):
     """there are so many views, this just makes sure it LOADS"""
     view = views.UserGroups.as_view()
     request = self.factory.get("")
     request.user = self.local_user
     result = view(request, username="******")
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 13
0
    def test_goal_page_no_goal_self(self):
        """view a reading goal page for your own unset goal"""
        view = views.Goal.as_view()
        request = self.factory.get("")
        request.user = self.local_user

        result = view(request, self.local_user.localname, self.year)
        validate_html(result.render())
        self.assertIsInstance(result, TemplateResponse)
Esempio n. 14
0
 def test_findusers_get(self, *_):
     """there are so many views, this just makes sure it LOADS"""
     view = views.FindUsers.as_view()
     request = self.factory.get("")
     request.user = self.local_user
     result = view(request, group_id=self.testgroup.id)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 15
0
 def test_ostatus_follow_request(self, *_):
     """check ostatus subscribe template loads"""
     request = self.factory.get(
         "", {"acct": "https%3A%2F%2Fexample.com%2Fusers%2Frat"})
     request.user = self.local_user
     result = views.ostatus_follow_request(request)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 16
0
    def test_create_admin_get(self):
        """there are so many views, this just makes sure it LOADS"""
        view = views.CreateAdmin.as_view()
        request = self.factory.get("")

        result = view(request)

        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)
Esempio n. 17
0
 def test_password_reset(self):
     """there are so many views, this just makes sure it LOADS"""
     view = views.PasswordReset.as_view()
     code = models.PasswordReset.objects.create(user=self.local_user)
     request = self.factory.get("")
     request.user = self.anonymous_user
     result = view(request, code.code)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 18
0
 def test_direct_messages_page_user(self, *_):
     """there are so many views, this just makes sure it LOADS"""
     view = views.DirectMessage.as_view()
     request = self.factory.get("")
     request.user = self.local_user
     result = view(request, "nutria")
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
     self.assertEqual(result.context_data["partner"], self.another_user)
Esempio n. 19
0
 def test_federation_page(self):
     """there are so many views, this just makes sure it LOADS"""
     view = views.Federation.as_view()
     request = self.factory.get("")
     request.user = self.local_user
     request.user.is_superuser = True
     result = view(request)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 20
0
    def test_add_link_page(self):
        """there are so many views, this just makes sure it LOADS"""
        view = views.AddFileLink.as_view()
        request = self.factory.get("")
        request.user = self.local_user
        result = view(request, self.book.id)
        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())

        self.assertEqual(result.status_code, 200)
Esempio n. 21
0
    def test_password_change_get(self):
        """there are so many views, this just makes sure it LOADS"""
        view = views.ChangePassword.as_view()
        request = self.factory.get("")
        request.user = self.local_user

        result = view(request)
        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)
Esempio n. 22
0
    def test_annual_summary_empty_page(self, *_):
        """there are so many views, this just makes sure it LOADS"""
        view = views.AnnualSummary.as_view()
        request = self.factory.get("")
        request.user = self.local_user

        result = view(request, self.local_user.localname, self.year)

        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)
Esempio n. 23
0
 def test_password_reset_mismatch(self):
     """reset from code"""
     view = views.PasswordReset.as_view()
     code = models.PasswordReset.objects.create(user=self.local_user)
     request = self.factory.post("", {
         "password": "******",
         "confirm-password": "******"
     })
     resp = view(request, code.code)
     validate_html(resp.render())
     self.assertTrue(models.PasswordReset.objects.exists())
Esempio n. 24
0
 def test_shelf_page_all_books_anonymous(self, *_):
     """there are so many views, this just makes sure it LOADS"""
     view = views.Shelf.as_view()
     request = self.factory.get("")
     request.user = self.anonymous_user
     with patch("bookwyrm.views.shelf.shelf.is_api_request") as is_api:
         is_api.return_value = False
         result = view(request, self.local_user.username)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 25
0
 def test_book_page_work_id(self):
     """there are so many views, this just makes sure it LOADS"""
     view = views.Book.as_view()
     request = self.factory.get("")
     request.user = self.local_user
     with patch("bookwyrm.views.books.books.is_api_request") as is_api:
         is_api.return_value = False
         result = view(request, self.work.id)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
     self.assertEqual(result.context_data["book"], self.book)
Esempio n. 26
0
 def test_shelf_page_all_books_empty(self, *_):
     """No books shelved"""
     view = views.Shelf.as_view()
     request = self.factory.get("")
     request.user = self.local_user
     with patch("bookwyrm.views.shelf.shelf.is_api_request") as is_api:
         is_api.return_value = False
         result = view(request, self.local_user.username)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 27
0
 def test_following_page_anonymous(self):
     """there are so many views, this just makes sure it LOADS"""
     view = views.Following.as_view()
     request = self.factory.get("")
     request.user = self.anonymous_user
     with patch("bookwyrm.views.user.is_api_request") as is_api:
         is_api.return_value = False
         result = view(request, "mouse")
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 28
0
 def test_import_troubleshoot_get(self):
     """there are so many views, this just makes sure it LOADS"""
     view = views.ImportManualReview.as_view()
     request = self.factory.get("")
     request.user = self.local_user
     with patch("bookwyrm.tasks.app.AsyncResult") as async_result:
         async_result.return_value = []
         result = view(request, self.job.id)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
Esempio n. 29
0
 def test_editions_page(self):
     """there are so many views, this just makes sure it LOADS"""
     view = views.Editions.as_view()
     request = self.factory.get("")
     with patch("bookwyrm.views.books.editions.is_api_request") as is_api:
         is_api.return_value = False
         result = view(request, self.work.id)
     self.assertIsInstance(result, TemplateResponse)
     validate_html(result.render())
     self.assertEqual(result.status_code, 200)
     self.assertTrue("paperback" in result.context_data["formats"])
Esempio n. 30
0
    def test_view_announcement(self):
        """display announcement on other pages"""
        view = views.User.as_view()
        request = self.factory.get("")
        request.user = self.local_user

        result = view(request, self.local_user.localname)

        self.assertIsInstance(result, TemplateResponse)
        validate_html(result.render())
        self.assertEqual(result.status_code, 200)