mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	ldap tests: Put django_to_ldap tests in DjangoToLDAPUsernameTests.
test_auth_backends had a few random django_to_ldap_username tests laying around, they belong in DjangoToLDAPUsernameTests.
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							9f330fba8e
						
					
				
				
					commit
					bb3ddb9576
				
			@@ -54,7 +54,7 @@ from zproject.backends import ZulipDummyBackend, EmailAuthBackend, \
 | 
			
		||||
    ZulipLDAPUserPopulator, DevAuthBackend, GitHubAuthBackend, ZulipAuthMixin, \
 | 
			
		||||
    dev_auth_enabled, password_auth_enabled, github_auth_enabled, google_auth_enabled, \
 | 
			
		||||
    require_email_format_usernames, AUTH_BACKEND_NAME_MAP, \
 | 
			
		||||
    ZulipLDAPConfigurationError, ZulipLDAPExceptionOutsideDomain, \
 | 
			
		||||
    ZulipLDAPConfigurationError, \
 | 
			
		||||
    ZulipLDAPException, query_ldap, sync_user_from_ldap, SocialAuthMixin, \
 | 
			
		||||
    PopulateUserLDAPError, SAMLAuthBackend, saml_auth_enabled, email_belongs_to_ldap, \
 | 
			
		||||
    get_social_backend_dicts, AzureADAuthBackend
 | 
			
		||||
@@ -2535,52 +2535,6 @@ class TestLDAP(ZulipLDAPTestCase):
 | 
			
		||||
        self.assertTrue(backend.get_all_permissions(None, None) == set())
 | 
			
		||||
        self.assertTrue(backend.get_group_permissions(None, None) == set())
 | 
			
		||||
 | 
			
		||||
    @override_settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipLDAPAuthBackend',))
 | 
			
		||||
    def test_django_to_ldap_username_without_append_domain(self) -> None:
 | 
			
		||||
        backend = self.backend
 | 
			
		||||
        with self.settings(
 | 
			
		||||
            AUTH_LDAP_REVERSE_EMAIL_SEARCH = LDAPSearch("ou=users,dc=zulip,dc=com",
 | 
			
		||||
                                                        ldap.SCOPE_ONELEVEL,
 | 
			
		||||
                                                        "(uid=%(email)s)")
 | 
			
		||||
        ):
 | 
			
		||||
            self.mock_ldap.directory = {
 | 
			
		||||
                'uid="hamlet@test"@zulip.com",ou=users,dc=zulip,dc=com': {
 | 
			
		||||
                    "cn": ["King Hamlet"],
 | 
			
		||||
                    "uid": ['"hamlet@test"@zulip.com'],
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            username = backend.django_to_ldap_username('"hamlet@test"@zulip.com')
 | 
			
		||||
            self.assertEqual(username, '"hamlet@test"@zulip.com')
 | 
			
		||||
 | 
			
		||||
    @override_settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipLDAPAuthBackend',))
 | 
			
		||||
    def test_django_to_ldap_username_with_append_domain(self) -> None:
 | 
			
		||||
        backend = self.backend
 | 
			
		||||
        with self.settings(LDAP_APPEND_DOMAIN='zulip.com'):
 | 
			
		||||
            self.mock_ldap.directory = {
 | 
			
		||||
                'uid="hamlet@test",ou=users,dc=zulip,dc=com': {
 | 
			
		||||
                    "cn": ["King Hamlet"],
 | 
			
		||||
                    "uid": ['"hamlet@test"'],
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            username = backend.django_to_ldap_username('"hamlet@test"@zulip.com')
 | 
			
		||||
            self.assertEqual(username, '"hamlet@test"')
 | 
			
		||||
 | 
			
		||||
            self.mock_ldap.directory = {
 | 
			
		||||
                'uid="hamlet@test"@zulip,ou=users,dc=zulip,dc=com': {
 | 
			
		||||
                    "cn": ["King Hamlet"],
 | 
			
		||||
                    "uid": ['"hamlet@test"@zulip'],
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            username = backend.django_to_ldap_username('"hamlet@test"@zulip')
 | 
			
		||||
            self.assertEqual(username, '"hamlet@test"@zulip')
 | 
			
		||||
 | 
			
		||||
    @override_settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipLDAPAuthBackend',))
 | 
			
		||||
    def test_django_to_ldap_username_with_invalid_domain(self) -> None:
 | 
			
		||||
        backend = self.backend
 | 
			
		||||
        with self.settings(LDAP_APPEND_DOMAIN='zulip.com'), \
 | 
			
		||||
                self.assertRaises(ZulipLDAPExceptionOutsideDomain):
 | 
			
		||||
            backend.django_to_ldap_username('"hamlet@test"@test.com')
 | 
			
		||||
 | 
			
		||||
    @override_settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipLDAPAuthBackend',))
 | 
			
		||||
    def test_user_email_from_ldapuser_with_append_domain(self) -> None:
 | 
			
		||||
        backend = self.backend
 | 
			
		||||
@@ -2693,14 +2647,6 @@ class TestLDAP(ZulipLDAPTestCase):
 | 
			
		||||
            with self.assertRaisesRegex(Exception, "Missing required mapping for user's full name"):
 | 
			
		||||
                backend.get_or_build_user(email, _LDAPUser())
 | 
			
		||||
 | 
			
		||||
    @override_settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipLDAPAuthBackend',))
 | 
			
		||||
    def test_django_to_ldap_username_when_domain_does_not_match(self) -> None:
 | 
			
		||||
        backend = self.backend
 | 
			
		||||
        email = self.example_email("hamlet")
 | 
			
		||||
        with self.assertRaisesRegex(Exception, 'Email hamlet@zulip.com does not match LDAP domain acme.com.'):
 | 
			
		||||
            with self.settings(LDAP_APPEND_DOMAIN='acme.com'):
 | 
			
		||||
                backend.django_to_ldap_username(email)
 | 
			
		||||
 | 
			
		||||
    @override_settings(AUTHENTICATION_BACKENDS=('zproject.backends.ZulipLDAPAuthBackend',))
 | 
			
		||||
    def test_login_failure_when_domain_does_not_match(self) -> None:
 | 
			
		||||
        with self.settings(LDAP_APPEND_DOMAIN='acme.com'):
 | 
			
		||||
 
 | 
			
		||||
@@ -26,9 +26,24 @@ class DjangoToLDAPUsernameTests(ZulipTestCase):
 | 
			
		||||
        with self.settings(LDAP_APPEND_DOMAIN="zulip.com"):
 | 
			
		||||
            self.assertEqual(self.backend.django_to_ldap_username("hamlet"), "hamlet")
 | 
			
		||||
            self.assertEqual(self.backend.django_to_ldap_username("hamlet@zulip.com"), "hamlet")
 | 
			
		||||
            with self.assertRaises(ZulipLDAPExceptionOutsideDomain):
 | 
			
		||||
            with self.assertRaisesRegex(ZulipLDAPExceptionOutsideDomain,
 | 
			
		||||
                                        'Email hamlet@example.com does not match LDAP domain zulip.com.'):
 | 
			
		||||
                self.backend.django_to_ldap_username("hamlet@example.com")
 | 
			
		||||
 | 
			
		||||
            self.mock_ldap.directory['uid="hamlet@test",ou=users,dc=zulip,dc=com'] = {
 | 
			
		||||
                "cn": ["King Hamlet"],
 | 
			
		||||
                "uid": ['"hamlet@test"'],
 | 
			
		||||
            }
 | 
			
		||||
            username = self.backend.django_to_ldap_username('"hamlet@test"@zulip.com')
 | 
			
		||||
            self.assertEqual(username, '"hamlet@test"')
 | 
			
		||||
 | 
			
		||||
            self.mock_ldap.directory['uid="hamlet@test"@zulip,ou=users,dc=zulip,dc=com'] = {
 | 
			
		||||
                "cn": ["King Hamlet"],
 | 
			
		||||
                "uid": ['"hamlet@test"@zulip'],
 | 
			
		||||
            }
 | 
			
		||||
            username = self.backend.django_to_ldap_username('"hamlet@test"@zulip')
 | 
			
		||||
            self.assertEqual(username, '"hamlet@test"@zulip')
 | 
			
		||||
 | 
			
		||||
    def test_django_to_ldap_username_without_email_search(self) -> None:
 | 
			
		||||
        with self.settings(AUTH_LDAP_REVERSE_EMAIL_SEARCH=None):
 | 
			
		||||
            self.assertEqual(self.backend.django_to_ldap_username("hamlet"), "hamlet")
 | 
			
		||||
@@ -73,6 +88,13 @@ class DjangoToLDAPUsernameTests(ZulipTestCase):
 | 
			
		||||
            self.assertEqual(self.backend.django_to_ldap_username("newuser_email_as_uid@zulip.com"),
 | 
			
		||||
                             "newuser_email_as_uid@zulip.com")
 | 
			
		||||
 | 
			
		||||
            self.mock_ldap.directory['uid="hamlet@test"@zulip.com",ou=users,dc=zulip,dc=com'] = {
 | 
			
		||||
                "cn": ["King Hamlet"],
 | 
			
		||||
                "uid": ['"hamlet@test"@zulip.com'],
 | 
			
		||||
            }
 | 
			
		||||
            username = self.backend.django_to_ldap_username('"hamlet@test"@zulip.com')
 | 
			
		||||
            self.assertEqual(username, '"hamlet@test"@zulip.com')
 | 
			
		||||
 | 
			
		||||
    @override_settings(AUTHENTICATION_BACKENDS=('zproject.backends.EmailAuthBackend',
 | 
			
		||||
                                                'zproject.backends.ZulipLDAPAuthBackend',))
 | 
			
		||||
    def test_authenticate_to_ldap_via_email(self) -> None:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user