58 lines
1.8 KiB
Python
58 lines
1.8 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"))
|