43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Password Policy tests"""
 | 
						|
from django.test import TestCase
 | 
						|
from guardian.shortcuts import get_anonymous_user
 | 
						|
 | 
						|
from passbook.policies.password.models import PasswordPolicy
 | 
						|
from passbook.policies.types import PolicyRequest, PolicyResult
 | 
						|
 | 
						|
 | 
						|
class TestPasswordPolicy(TestCase):
 | 
						|
    """Test Password Policy"""
 | 
						|
 | 
						|
    def test_false(self):
 | 
						|
        """Failing password case"""
 | 
						|
        policy = PasswordPolicy.objects.create(
 | 
						|
            name="test_false",
 | 
						|
            amount_uppercase=1,
 | 
						|
            amount_lowercase=2,
 | 
						|
            amount_symbols=3,
 | 
						|
            length_min=24,
 | 
						|
            error_message="test message",
 | 
						|
        )
 | 
						|
        request = PolicyRequest(get_anonymous_user())
 | 
						|
        request.context["password"] = "test"
 | 
						|
        result: PolicyResult = policy.passes(request)
 | 
						|
        self.assertFalse(result.passing)
 | 
						|
        self.assertEqual(result.messages, ("test message",))
 | 
						|
 | 
						|
    def test_true(self):
 | 
						|
        """Positive password case"""
 | 
						|
        policy = PasswordPolicy.objects.create(
 | 
						|
            name="test_true",
 | 
						|
            amount_uppercase=1,
 | 
						|
            amount_lowercase=2,
 | 
						|
            amount_symbols=3,
 | 
						|
            length_min=3,
 | 
						|
            error_message="test message",
 | 
						|
        )
 | 
						|
        request = PolicyRequest(get_anonymous_user())
 | 
						|
        request.context["password"] = "Test()!"
 | 
						|
        result: PolicyResult = policy.passes(request)
 | 
						|
        self.assertTrue(result.passing)
 | 
						|
        self.assertEqual(result.messages, tuple())
 |