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