Jan Dittberner
4b060c51f4
This commit adds test coverage for gvaldap and ldapentities and starts to provide coverage for ldaptasks using mockldap.
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)
|