authentik.sources.ldap.tests.test_password
LDAP Source tests
1"""LDAP Source tests""" 2 3from unittest.mock import MagicMock, patch 4 5from django.test import TestCase 6 7from authentik.core.models import User 8from authentik.sources.ldap.models import LDAPSource, LDAPSourcePropertyMapping 9from authentik.sources.ldap.password import LDAPPasswordChanger 10from authentik.sources.ldap.tests.mock_ad import mock_ad_connection 11 12LDAP_CONNECTION_PATCH = MagicMock(return_value=mock_ad_connection()) 13 14 15class LDAPPasswordTests(TestCase): 16 """LDAP Password tests""" 17 18 def setUp(self): 19 self.source = LDAPSource.objects.create( 20 name="ldap", 21 slug="ldap", 22 base_dn="dc=t,dc=goauthentik,dc=io", 23 additional_user_dn="", 24 additional_group_dn="", 25 ) 26 self.source.user_property_mappings.set(LDAPSourcePropertyMapping.objects.all()) 27 self.source.save() 28 29 @patch("authentik.sources.ldap.models.LDAPSource.connection", LDAP_CONNECTION_PATCH) 30 def test_password_complexity(self): 31 """Test password without user""" 32 pwc = LDAPPasswordChanger(self.source) 33 self.assertFalse(pwc.ad_password_complexity("test")) # 1 category 34 self.assertFalse(pwc.ad_password_complexity("test1")) # 2 categories 35 self.assertTrue(pwc.ad_password_complexity("test1!")) # 2 categories 36 37 @patch("authentik.sources.ldap.models.LDAPSource.connection", LDAP_CONNECTION_PATCH) 38 def test_password_complexity_user(self): 39 """test password with user""" 40 pwc = LDAPPasswordChanger(self.source) 41 user = User.objects.create( 42 username="test", 43 attributes={ 44 "distinguishedName": "CN=Erin M. Hagens,OU=ak-test,DC=t,DC=goauthentik,DC=io" 45 }, 46 ) 47 self.assertFalse(pwc.ad_password_complexity("test", user)) # 1 category 48 self.assertFalse(pwc.ad_password_complexity("test1", user)) # 2 categories 49 self.assertTrue(pwc.ad_password_complexity("test1!", user)) # 2 categories 50 self.assertFalse(pwc.ad_password_complexity("erin!qewrqewr", user)) # displayName token 51 self.assertFalse(pwc.ad_password_complexity("hagens!qewrqewr", user)) # displayName token
LDAP_CONNECTION_PATCH =
<MagicMock id='140377042830064'>
class
LDAPPasswordTests(django.test.testcases.TestCase):
16class LDAPPasswordTests(TestCase): 17 """LDAP Password tests""" 18 19 def setUp(self): 20 self.source = LDAPSource.objects.create( 21 name="ldap", 22 slug="ldap", 23 base_dn="dc=t,dc=goauthentik,dc=io", 24 additional_user_dn="", 25 additional_group_dn="", 26 ) 27 self.source.user_property_mappings.set(LDAPSourcePropertyMapping.objects.all()) 28 self.source.save() 29 30 @patch("authentik.sources.ldap.models.LDAPSource.connection", LDAP_CONNECTION_PATCH) 31 def test_password_complexity(self): 32 """Test password without user""" 33 pwc = LDAPPasswordChanger(self.source) 34 self.assertFalse(pwc.ad_password_complexity("test")) # 1 category 35 self.assertFalse(pwc.ad_password_complexity("test1")) # 2 categories 36 self.assertTrue(pwc.ad_password_complexity("test1!")) # 2 categories 37 38 @patch("authentik.sources.ldap.models.LDAPSource.connection", LDAP_CONNECTION_PATCH) 39 def test_password_complexity_user(self): 40 """test password with user""" 41 pwc = LDAPPasswordChanger(self.source) 42 user = User.objects.create( 43 username="test", 44 attributes={ 45 "distinguishedName": "CN=Erin M. Hagens,OU=ak-test,DC=t,DC=goauthentik,DC=io" 46 }, 47 ) 48 self.assertFalse(pwc.ad_password_complexity("test", user)) # 1 category 49 self.assertFalse(pwc.ad_password_complexity("test1", user)) # 2 categories 50 self.assertTrue(pwc.ad_password_complexity("test1!", user)) # 2 categories 51 self.assertFalse(pwc.ad_password_complexity("erin!qewrqewr", user)) # displayName token 52 self.assertFalse(pwc.ad_password_complexity("hagens!qewrqewr", user)) # displayName token
LDAP Password tests
def
setUp(self):
19 def setUp(self): 20 self.source = LDAPSource.objects.create( 21 name="ldap", 22 slug="ldap", 23 base_dn="dc=t,dc=goauthentik,dc=io", 24 additional_user_dn="", 25 additional_group_dn="", 26 ) 27 self.source.user_property_mappings.set(LDAPSourcePropertyMapping.objects.all()) 28 self.source.save()
Hook method for setting up the test fixture before exercising it.
@patch('authentik.sources.ldap.models.LDAPSource.connection', LDAP_CONNECTION_PATCH)
def
test_password_complexity(self):
30 @patch("authentik.sources.ldap.models.LDAPSource.connection", LDAP_CONNECTION_PATCH) 31 def test_password_complexity(self): 32 """Test password without user""" 33 pwc = LDAPPasswordChanger(self.source) 34 self.assertFalse(pwc.ad_password_complexity("test")) # 1 category 35 self.assertFalse(pwc.ad_password_complexity("test1")) # 2 categories 36 self.assertTrue(pwc.ad_password_complexity("test1!")) # 2 categories
Test password without user
@patch('authentik.sources.ldap.models.LDAPSource.connection', LDAP_CONNECTION_PATCH)
def
test_password_complexity_user(self):
38 @patch("authentik.sources.ldap.models.LDAPSource.connection", LDAP_CONNECTION_PATCH) 39 def test_password_complexity_user(self): 40 """test password with user""" 41 pwc = LDAPPasswordChanger(self.source) 42 user = User.objects.create( 43 username="test", 44 attributes={ 45 "distinguishedName": "CN=Erin M. Hagens,OU=ak-test,DC=t,DC=goauthentik,DC=io" 46 }, 47 ) 48 self.assertFalse(pwc.ad_password_complexity("test", user)) # 1 category 49 self.assertFalse(pwc.ad_password_complexity("test1", user)) # 2 categories 50 self.assertTrue(pwc.ad_password_complexity("test1!", user)) # 2 categories 51 self.assertFalse(pwc.ad_password_complexity("erin!qewrqewr", user)) # displayName token 52 self.assertFalse(pwc.ad_password_complexity("hagens!qewrqewr", user)) # displayName token
test password with user