48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
"""passbook user view tests"""
|
|
import string
|
|
from random import SystemRandom
|
|
|
|
from django.shortcuts import reverse
|
|
from django.test import TestCase
|
|
|
|
from passbook.core.forms.users import PasswordChangeForm
|
|
from passbook.core.models import User
|
|
|
|
|
|
class TestUserViews(TestCase):
|
|
"""Test User Views"""
|
|
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.user = User.objects.create_superuser(
|
|
username='unittest user',
|
|
email='unittest@example.com',
|
|
password=''.join(SystemRandom().choice(
|
|
string.ascii_uppercase + string.digits) for _ in range(8)))
|
|
self.client.force_login(self.user)
|
|
|
|
def test_user_settings(self):
|
|
"""Test UserSettingsView"""
|
|
self.assertEqual(self.client.get(reverse('passbook_core:user-settings')).status_code, 200)
|
|
|
|
def test_user_delete(self):
|
|
"""Test UserDeleteView"""
|
|
self.assertEqual(self.client.post(reverse('passbook_core:user-delete')).status_code, 302)
|
|
self.assertEqual(User.objects.filter(username='unittest user').exists(), False)
|
|
self.setUp()
|
|
|
|
def test_user_change_password(self):
|
|
"""Test UserChangePasswordView"""
|
|
form_data = {
|
|
'password': 'test2',
|
|
'password_repeat': 'test2'
|
|
}
|
|
form = PasswordChangeForm(data=form_data)
|
|
self.assertTrue(form.is_valid())
|
|
self.assertEqual(self.client.get(
|
|
reverse('passbook_core:user-change-password')).status_code, 200)
|
|
self.assertEqual(self.client.post(
|
|
reverse('passbook_core:user-change-password'), data=form_data).status_code, 302)
|
|
self.user.refresh_from_db()
|
|
self.assertTrue(self.user.check_password('test2'))
|