diff options
author | Michał Górny <mgorny@gentoo.org> | 2013-09-22 10:55:25 -0700 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2013-09-22 10:55:25 -0700 |
commit | de128ee24c46c6b5408a9197ed0c293800796a47 (patch) | |
tree | 9ab8da831e43bbeae6e7e35a815f95daa321d22d /okupy/tests/unit | |
parent | Merge pull request #99 from dastergon/minor_fixes (diff) | |
parent | Add tests for LDAPAuthBackend. (diff) | |
download | identity.gentoo.org-de128ee24c46c6b5408a9197ed0c293800796a47.tar.gz identity.gentoo.org-de128ee24c46c6b5408a9197ed0c293800796a47.tar.bz2 identity.gentoo.org-de128ee24c46c6b5408a9197ed0c293800796a47.zip |
Merge pull request #92 from mgorny/no-django_ldap_auth
Replace django_auth_ldap with own backend
Diffstat (limited to 'okupy/tests/unit')
-rw-r--r-- | okupy/tests/unit/test_auth.py | 73 | ||||
-rw-r--r-- | okupy/tests/unit/test_login.py | 15 |
2 files changed, 82 insertions, 6 deletions
diff --git a/okupy/tests/unit/test_auth.py b/okupy/tests/unit/test_auth.py index 586987b..de0f367 100644 --- a/okupy/tests/unit/test_auth.py +++ b/okupy/tests/unit/test_auth.py @@ -4,6 +4,7 @@ from mockldap import MockLdap from django.conf import settings from django.contrib.auth import authenticate +from django.contrib.auth.models import User from django.test import TestCase from okupy.common.test_helpers import ldap_users, set_request @@ -112,3 +113,75 @@ class AuthSSHUnitTests(TestCase): data=base64.b64decode(vars.TEST_SSH_KEY_FOR_NO_USER)) u = authenticate(ssh_key=key) self.assertIs(u, None) + + +class AuthLDAPUnitTests(TestCase): + @classmethod + def setUpClass(cls): + cls.mockldap = MockLdap(vars.DIRECTORY) + + @classmethod + def tearDownClass(cls): + del cls.mockldap + + def setUp(self): + self.mockldap.start() + self.ldapobj = self.mockldap[settings.AUTH_LDAP_SERVER_URI] + self.request = set_request(uri='/login') + + def tearDown(self): + self.mockldap.stop() + del self.ldapobj + + def test_successful_login(self): + user = authenticate(request=self.request, + username='alice', password='ldaptest') + self.assertTrue(user.username, 'alice') + + def test_successful_login_lowercase(self): + user = authenticate(request=self.request, + username='Alice', password='ldaptest') + self.assertTrue(user.username, 'alice') + + def test_successful_login_trailing_whitespace(self): + user = authenticate(request=self.request, + username='alice ', password='ldaptest') + self.assertTrue(user.username, 'alice') + + def test_successful_login_leading_whitespace(self): + user = authenticate(request=self.request, + username=' alice', password='ldaptest') + self.assertTrue(user.username, 'alice') + + def test_failed_login_wrong_password(self): + user = authenticate(request=self.request, + username='alice', password='ldaptest1') + self.assertIs(user, None) + + def test_failed_login_wrong_username(self): + user = authenticate(request=self.request, + username='wrong', password='ldaptest') + self.assertIs(user, None) + + def test_add_user_in_db(self): + authenticate(request=self.request, + username='alice', password='ldaptest') + self.assertEqual(User.objects.count(), 1) + + def test_successful_login_existing_user(self): + User.objects.create(username='alice') + user = authenticate(request=self.request, + username='alice', password='ldaptest') + self.assertTrue(user is not None) + self.assertEqual(User.objects.count(), 1) + + def test_successful_login_existing_user_insensitive(self): + User.objects.create(username='alice') + user = authenticate(request=self.request, + username='Alice', password='ldaptest') + self.assertTrue(user.username, 'alice') + + def test_successful_login_insensitive(self): + user = authenticate(request=self.request, + username='Alice', password='ldaptest') + self.assertTrue(user.username, 'alice') diff --git a/okupy/tests/unit/test_login.py b/okupy/tests/unit/test_login.py index f781741..c9948db 100644 --- a/okupy/tests/unit/test_login.py +++ b/okupy/tests/unit/test_login.py @@ -52,7 +52,7 @@ class LoginUnitTests(OkupyTestCase): @no_database() @override_settings(AUTHENTICATION_BACKENDS=( - 'django_auth_ldap.backend.LDAPBackend', + 'okupy.common.auth.LDAPAuthBackend', 'django.contrib.auth.backends.ModelBackend')) def test_no_database_raises_critical(self): request = set_request(uri='/login', post=vars.LOGIN_ALICE, @@ -64,7 +64,7 @@ class LoginUnitTests(OkupyTestCase): @no_database() @override_settings(AUTHENTICATION_BACKENDS=( - 'django_auth_ldap.backend.LDAPBackend', + 'okupy.common.auth.LDAPAuthBackend', 'django.contrib.auth.backends.ModelBackend')) def test_no_database_sends_notification_mail(self): request = set_request(uri='/login', post=vars.LOGIN_ALICE, @@ -144,17 +144,20 @@ class LoginUnitTestsNoLDAP(OkupyTestCase): self.assertMessage(response, 'Login failed', 40) def test_dont_authenticate_from_db_when_ldap_is_down(self): - request = set_request(uri='/login', post=vars.LOGIN_BOB, messages=True) + request = set_request(uri='/login', post=vars.LOGIN_BOB, + messages=True) response = login(request) response.context = RequestContext(request) - self.assertMessage(response, 'Login failed', 40) + self.assertMessage(response, + "Can't contact the LDAP server or the database", 40) - def test_no_ldap_connection_raises_login_failed_in_login(self): + def test_no_ldap_connection_raises_ldaperror_in_login(self): request = set_request(uri='/login', post=vars.LOGIN_WRONG, messages=True) response = login(request) response.context = RequestContext(request) - self.assertMessage(response, 'Login failed', 40) + self.assertMessage(response, + "Can't contact the LDAP server or the database", 40) def test_no_ldap_connection_in_logout_sends_notification_mail(self): request = set_request(uri='/login', post=vars.LOGIN_ALICE, |