63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
|
"""
|
||
|
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)
|