gvaldap/gvaldap/ldapentities/tests/test_admin.py
Jan Dittberner 4b060c51f4 Add unit tests
This commit adds test coverage for gvaldap and ldapentities and starts
to provide coverage for ldaptasks using mockldap.
2016-02-01 00:55:59 +00:00

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)