tests status class view

This commit is contained in:
Mouse Reeve 2021-01-12 14:43:59 -08:00
parent 6c80b128a4
commit 5596277d29
5 changed files with 43 additions and 24 deletions

View file

@ -9,8 +9,7 @@ from django.test import TestCase
from django.test.client import RequestFactory from django.test.client import RequestFactory
import responses import responses
from bookwyrm import forms, models, outgoing from bookwyrm import models, outgoing
from bookwyrm.settings import DOMAIN
# pylint: disable=too-many-public-methods # pylint: disable=too-many-public-methods

View file

@ -2,7 +2,6 @@
import json import json
from unittest.mock import patch from unittest.mock import patch
from django.contrib.auth.models import AnonymousUser
from django.http import JsonResponse from django.http import JsonResponse
from django.template.response import TemplateResponse from django.template.response import TemplateResponse
from django.test import TestCase from django.test import TestCase

View file

@ -15,8 +15,25 @@ class StatusViews(TestCase):
''' we need basic test data and mocks ''' ''' we need basic test data and mocks '''
self.factory = RequestFactory() self.factory = RequestFactory()
self.local_user = models.User.objects.create_user( self.local_user = models.User.objects.create_user(
'mouse@local.com', 'mouse@mouse.mouse', 'password', 'mouse@local.com', 'mouse@mouse.com', 'mouseword',
local=True, localname='mouse') local=True, localname='mouse',
remote_id='https://example.com/users/mouse',
)
with patch('bookwyrm.models.user.set_remote_server'):
self.remote_user = models.User.objects.create_user(
'rat', 'rat@email.com', 'ratword',
local=False,
remote_id='https://example.com/users/rat',
inbox='https://example.com/users/rat/inbox',
outbox='https://example.com/users/rat/outbox',
)
work = models.Work.objects.create(title='Test Work')
self.book = models.Edition.objects.create(
title='Example Edition',
remote_id='https://example.com/book/1',
parent_work=work
)
def test_status_page(self): def test_status_page(self):
@ -70,7 +87,7 @@ class StatusViews(TestCase):
'book': self.book.id, 'book': self.book.id,
'privacy': 'public', 'privacy': 'public',
}) })
request = self.factory.get('', form.data) request = self.factory.post('', form.data)
request.user = self.local_user request.user = self.local_user
with patch('bookwyrm.broadcast.broadcast_task.delay'): with patch('bookwyrm.broadcast.broadcast_task.delay'):
view(request, 'comment') view(request, 'comment')
@ -92,8 +109,8 @@ class StatusViews(TestCase):
'reply_parent': parent.id, 'reply_parent': parent.id,
'privacy': 'public', 'privacy': 'public',
}) })
request = self.factory.get('', form.data) request = self.factory.post('', form.data)
request.user = self.local_user request.user = user
with patch('bookwyrm.broadcast.broadcast_task.delay'): with patch('bookwyrm.broadcast.broadcast_task.delay'):
view(request, 'reply') view(request, 'reply')
status = models.Status.objects.get(user=user) status = models.Status.objects.get(user=user)
@ -114,7 +131,7 @@ class StatusViews(TestCase):
'book': self.book.id, 'book': self.book.id,
'privacy': 'public', 'privacy': 'public',
}) })
request = self.factory.get('', form.data) request = self.factory.post('', form.data)
request.user = self.local_user request.user = self.local_user
with patch('bookwyrm.broadcast.broadcast_task.delay'): with patch('bookwyrm.broadcast.broadcast_task.delay'):
@ -138,7 +155,7 @@ class StatusViews(TestCase):
'book': self.book.id, 'book': self.book.id,
'privacy': 'public', 'privacy': 'public',
}) })
request = self.factory.get('', form.data) request = self.factory.post('', form.data)
request.user = self.local_user request.user = self.local_user
with patch('bookwyrm.broadcast.broadcast_task.delay'): with patch('bookwyrm.broadcast.broadcast_task.delay'):
@ -147,14 +164,14 @@ class StatusViews(TestCase):
form = forms.ReplyForm({ form = forms.ReplyForm({
'content': 'right', 'content': 'right',
'user': user, 'user': user.id,
'privacy': 'public', 'privacy': 'public',
'reply_parent': status.id 'reply_parent': status.id
}) })
request = self.factory.get('', form.data) request = self.factory.post('', form.data)
request.user = self.local_user request.user = user
with patch('bookwyrm.broadcast.broadcast_task.delay'): with patch('bookwyrm.broadcast.broadcast_task.delay'):
view(request, 'comment') view(request, 'reply')
reply = models.Status.replies(status).first() reply = models.Status.replies(status).first()
self.assertEqual(reply.content, '<p>right</p>') self.assertEqual(reply.content, '<p>right</p>')

View file

@ -81,21 +81,19 @@ urlpatterns = [
re_path(r'^delete-status/(?P<status_id>\d+)/?$', re_path(r'^delete-status/(?P<status_id>\d+)/?$',
views.DeleteStatus.as_view()), views.DeleteStatus.as_view()),
re_path(r'^tag/?$', actions.tag),
re_path(r'^untag/?$', actions.untag),
# books
re_path(r'%s(.json)?/?$' % book_path, vviews.book_page),
re_path(r'%s/edit/?$' % book_path, vviews.edit_book_page),
re_path(r'^author/(?P<author_id>[\w\-]+)/edit/?$', vviews.edit_author_page),
re_path(r'%s/editions(.json)?/?$' % book_path, vviews.editions_page),
# interact # interact
re_path(r'^favorite/(?P<status_id>\d+)/?$', actions.favorite), re_path(r'^favorite/(?P<status_id>\d+)/?$', actions.favorite),
re_path(r'^unfavorite/(?P<status_id>\d+)/?$', actions.unfavorite), re_path(r'^unfavorite/(?P<status_id>\d+)/?$', actions.unfavorite),
re_path(r'^boost/(?P<status_id>\d+)/?$', actions.boost), re_path(r'^boost/(?P<status_id>\d+)/?$', actions.boost),
re_path(r'^unboost/(?P<status_id>\d+)/?$', actions.unboost), re_path(r'^unboost/(?P<status_id>\d+)/?$', actions.unboost),
# books
re_path(r'%s(.json)?/?$' % book_path, vviews.book_page),
re_path(r'%s/edit/?$' % book_path, vviews.edit_book_page),
re_path(r'^author/(?P<author_id>[\w\-]+)/edit/?$', vviews.edit_author_page),
re_path(r'%s/editions(.json)?/?$' % book_path, vviews.editions_page),
re_path(r'^tag/?$', actions.tag),
re_path(r'^untag/?$', actions.untag),
re_path(r'^author/(?P<author_id>[\w\-]+)(.json)?/?$', vviews.author_page), re_path(r'^author/(?P<author_id>[\w\-]+)(.json)?/?$', vviews.author_page),
re_path(r'^tag/(?P<tag_id>.+)\.json/?$', vviews.tag_page), re_path(r'^tag/(?P<tag_id>.+)\.json/?$', vviews.tag_page),

View file

@ -1,6 +1,12 @@
''' helper functions used in various views ''' ''' helper functions used in various views '''
import re
from requests import HTTPError
from django.db.models import Q from django.db.models import Q
from bookwyrm import models
from bookwyrm import activitypub, models
from bookwyrm.connectors import ConnectorException, get_data
from bookwyrm.utils import regex
def get_user_from_username(username): def get_user_from_username(username):
''' helper function to resolve a localname or a username to a user ''' ''' helper function to resolve a localname or a username to a user '''