"""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"))