clean up tests

- remove unnecessary crap
- add missing tests
This commit is contained in:
Hugh Rundle 2022-09-24 16:11:34 +10:00
parent 9d36722783
commit 119b4bf2ff

View file

@ -1,8 +1,7 @@
""" test for app two factor auth functionality """ """ test for app two factor auth functionality """
from unittest.mock import patch from unittest.mock import patch
import pyotp
from datetime import datetime
import time import time
import pyotp
from django.contrib.auth.models import AnonymousUser from django.contrib.auth.models import AnonymousUser
from django.contrib.sessions.middleware import SessionMiddleware from django.contrib.sessions.middleware import SessionMiddleware
@ -11,7 +10,6 @@ from django.test import TestCase
from django.test.client import RequestFactory from django.test.client import RequestFactory
from bookwyrm import forms, models, views from bookwyrm import forms, models, views
from bookwyrm.tests.validate_html import validate_html
# pylint: disable=too-many-public-methods # pylint: disable=too-many-public-methods
@patch("bookwyrm.suggested_users.rerank_suggestions_task.delay") @patch("bookwyrm.suggested_users.rerank_suggestions_task.delay")
@ -112,30 +110,29 @@ class TwoFactorViews(TestCase):
self.assertIsInstance(result, TemplateResponse) self.assertIsInstance(result, TemplateResponse)
self.assertEqual(result.status_code, 200) self.assertEqual(result.status_code, 200)
def test_post_login_with_2fa(self, *_): # def test_post_login_with_2fa(self, *_):
"""check 2FA login works""" # """check 2FA login works"""
# NOTE this throws a redis error. # NOTE this throws a redis error.
# Possibly because the function it tests wants to check the user database? # Possibly because the function it tests wants to check the user database?
# can we mock that? # can we mock that?
# view = views.LoginWith2FA.as_view() # view = views.LoginWith2FA.as_view()
# form = forms.Confirm2FAForm() # form = forms.Confirm2FAForm()
# totp = pyotp.TOTP('UEWMVJHO23G5XLMVSOCL6TNTSSACJH2X') # totp = pyotp.TOTP('UEWMVJHO23G5XLMVSOCL6TNTSSACJH2X')
# form.data["otp"] = totp.now() # form.data["otp"] = totp.now()
# request = self.factory.post("", form.data) # request = self.factory.post("", form.data)
# request.user = self.local_user # request.user = self.local_user
# middleware = SessionMiddleware(request) # middleware = SessionMiddleware(request)
# middleware.process_request(request) # middleware.process_request(request)
# request.session['2fa_auth_time'] = time.time() # request.session['2fa_auth_time'] = time.time()
# request.session['2fa_user'] = self.local_user.username # request.session['2fa_user'] = self.local_user.username
# request.session.save() # request.session.save()
# with patch("bookwyrm.views.preferences.two_factor_auth.LoginWith2FA"): # with patch("bookwyrm.views.preferences.two_factor_auth.LoginWith2FA"):
# result = view(request) # result = view(request)
# self.assertIsInstance(result, TemplateResponse) # self.assertIsInstance(result, TemplateResponse)
# self.assertEqual(result.status_code, 200) # self.assertEqual(result.status_code, 200)
pass
def test_post_login_with_2fa_wrong_code(self, *_): def test_post_login_with_2fa_wrong_code(self, *_):
"""check 2FA login fails""" """check 2FA login fails"""
@ -179,24 +176,20 @@ class TwoFactorViews(TestCase):
self.assertEqual(result.url, "/") self.assertEqual(result.url, "/")
self.assertEqual(result.status_code, 302) self.assertEqual(result.status_code, 302)
def test_get_generate_backup_codes(self, *_):
"""there are so many views, this just makes sure it LOADS"""
view = views.GenerateBackupCodes.as_view()
request = self.factory.get("")
request.user = self.local_user
result = view(request)
self.assertIsInstance(result, TemplateResponse)
self.assertEqual(result.status_code, 200)
""" def test_get_prompt_2fa(self, *_):
Edit2FA """there are so many views, this just makes sure it LOADS"""
- get view = views.Prompt2FA.as_view()
- post request = self.factory.get("")
- create_qr_code request.user = self.local_user
Confirm2FA result = view(request)
- post self.assertIsInstance(result, TemplateResponse)
Disable2FA self.assertEqual(result.status_code, 200)
- get
- post
LoginWith2FA
- get
- post
GenerateBackupCodes
- get
- generate_backup_codes
Prompt2FA
- get
"""