""" This module provides tests for :py:mod:`ldapentities.admin`. """ from __future__ import absolute_import from django.conf import settings from django.core.urlresolvers import reverse from django.test import TestCase from django.contrib.auth import get_user_model from mockldap import MockLdap User = get_user_model() TEST_USER = 'admin' TEST_EMAIL = 'admin@example.org' TEST_PASSWORD = 'secret' admin = ( settings.DATABASES['ldap']['USER'], { 'userPassword': [settings.DATABASES['ldap']['PASSWORD']]}) groups = ( settings.GROUP_BASE_DN, { 'objectClass': ['top', 'organizationalUnit'], 'ou': ['groups']}) users = ( settings.USER_BASE_DN, { 'objectClass': ['top', 'organizationalUnit'], 'ou': ['users']}) class LdapUserAdminTest(TestCase): directory = dict([admin, groups, users]) @classmethod def setUpClass(cls): cls.mockldap = MockLdap(cls.directory) @classmethod def tearDownClass(cls): del cls.mockldap def setUp(self): User.objects.create_superuser( TEST_USER, email=TEST_EMAIL, password=TEST_PASSWORD) self.client.login(username=TEST_USER, password=TEST_PASSWORD) self.mockldap.start() self.ldapobj = self.mockldap[settings.DATABASES['ldap']['NAME']] def tearDown(self): self.mockldap.stop() del self.ldapobj def test_can_administer_groups(self): response = self.client.get(reverse( 'admin:ldapentities_ldapgroup_changelist')) self.assertEqual(response.status_code, 200) def test_can_administer_users(self): response = self.client.get(reverse( 'admin:ldapentities_ldapuser_changelist')) self.assertEqual(response.status_code, 200)