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