/
tests.py
92 lines (76 loc) · 2.89 KB
/
tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
"""
Unit tests for LDAP authorization and authentication.
"""
from django.contrib.auth.models import User
from django.test import TestCase
from wwu_housing.ldapauth import LDAP
from utils import django_user_set_for_ldap_group, get_users_by_distinguished_name
class LDAPTestCase(TestCase):
def setUp(self):
self.ldap = LDAP("wwu")
def test_search_groups(self):
self.ldap = LDAP("wwu")
query = "*webteam*"
results = self.ldap.search_groups(query)
self.assertTrue(len(results) > 0)
def test_search_people(self):
query = "Firass Asad"
results = self.ldap.search_people(query)
self.assertEquals(len(results), 1)
def test_get_person_by_username(self):
username = "dfrost"
person = self.ldap.get_person_by_username(username)
self.assertEquals(username, person.sAMAccountName[0])
def test_get_token_groups_by_user(self):
username = "asadf"
person = self.ldap.get_person_by_username(username)
token_groups = self.ldap.get_token_groups_by_dn(person.dn)
self.assertTrue(len(token_groups) > 0)
self.assertTrue(token_groups[1] is not None, token_groups)
self.assertTrue(token_groups[1].startswith("grp"), token_groups)
class LDAPResultTestCase(TestCase):
def setUp(self):
self.ldap = LDAP("wwu")
def test_get_token_groups_by_user(self):
username = "asadf"
person = self.ldap.get_person_by_username(username)
self.assertTrue(len(person.groups) > 0)
self.assertTrue(person.groups[1] is not None, person.groups)
self.assertTrue(person.groups[1].startswith("grp"), person.groups)
class UtilsTestCase(TestCase):
"""
Tests for LDAP utils.
"""
fixtures = ["django_users_staff.json"]
def test_get_users_by_distinguished_name(self):
user = User.objects.create_user(
username="test0r",
password="!",
email="test0r@test0r.com"
)
user.first_name = "Testy"
user.last_name = "McTestorson"
user.save()
self.assertEquals(
get_users_by_distinguished_name(["CN=test0r,OU=wwu"])[0],
user
)
self.assertEquals(
get_users_by_distinguished_name(["CN=Testy McTestorson,OU=wwu"])[0],
user
)
self.assertEquals(
get_users_by_distinguished_name(["CN=fakeuser,OU=wwu"]).count(),
User.objects.none().count()
)
def test_django_user_set_for_ldap_group(self):
# Test a group known to have users.
user_set = django_user_set_for_ldap_group("grp.housing.meal-plan-report")
self.assertTrue(len(user_set) > 0)
self.assertTrue(isinstance(user_set[0], User))
# Test a fake group.
self.assertRaises(
IndexError,
django_user_set_for_ldap_group,
"grp.housing.roles.fakerole"
)