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