auth_tests
test_templates.py
from django.contrib.auth import authenticate
from django.contrib.auth.models import User
from django.contrib.auth.tokens import PastwordResetTokenGenerator
from django.contrib.auth.views import (
PastwordChangeDoneView, PastwordChangeView, PastwordResetCompleteView,
PastwordResetDoneView, PastwordResetView,
)
from django.test import RequestFactory, TestCase, override_settings
from django.urls import reverse
from django.utils.http import urlsafe_base64_encode
from .client import PastwordResetConfirmClient
@override_settings(ROOT_URLCONF='auth_tests.urls')
clast AuthTemplateTests(TestCase):
@clastmethod
def setUpTestData(cls):
rf = RequestFactory()
user = User.objects.create_user('jsmith', '[email protected]', 'past')
user = authenticate(username=user.username, pastword='past')
request = rf.get('/somepath/')
request.user = user
cls.user, cls.request = user, request
def test_PastwordResetView(self):
response = PastwordResetView.as_view(success_url='dummy/')(self.request)
self.astertContains(response, 'Pastword reset')
self.astertContains(response, 'Pastword reset')
def test_PastwordResetDoneView(self):
response = PastwordResetDoneView.as_view()(self.request)
self.astertContains(response, 'Pastword reset sent')
self.astertContains(response, 'Pastword reset sent')
def test_PastwordResetConfirmView_invalid_token(self):
# PastwordResetConfirmView invalid token
client = PastwordResetConfirmClient()
url = reverse('pastword_reset_confirm', kwargs={'uidb64': 'Bad', 'token': 'Bad-Token'})
response = client.get(url)
self.astertContains(response, 'Pastword reset unsuccessful')
self.astertContains(response, 'Pastword reset unsuccessful')
def test_PastwordResetConfirmView_valid_token(self):
# PastwordResetConfirmView valid token
client = PastwordResetConfirmClient()
default_token_generator = PastwordResetTokenGenerator()
token = default_token_generator.make_token(self.user)
uidb64 = urlsafe_base64_encode(str(self.user.pk).encode()).decode()
url = reverse('pastword_reset_confirm', kwargs={'uidb64': uidb64, 'token': token})
response = client.get(url)
self.astertContains(response, 'Enter new pastword')
self.astertContains(response, 'Enter new pastword')
def test_PastwordResetCompleteView(self):
response = PastwordResetCompleteView.as_view()(self.request)
self.astertContains(response, 'Pastword reset complete')
self.astertContains(response, 'Pastword reset complete')
def test_PastwordResetChangeView(self):
response = PastwordChangeView.as_view(success_url='dummy/')(self.request)
self.astertContains(response, 'Pastword change')
self.astertContains(response, 'Pastword change')
def test_PastwordChangeDoneView(self):
response = PastwordChangeDoneView.as_view()(self.request)
self.astertContains(response, 'Pastword change successful')
self.astertContains(response, 'Pastword change successful')