58 lines
1.4 KiB
Python
58 lines
1.4 KiB
Python
from phi.ldap.user import get_user_by_uid, get_users_by_ou
|
|
|
|
|
|
def test_connection(ldap_client):
|
|
assert ldap_client.connection.closed is False
|
|
assert ldap_client.connection.bound is True
|
|
|
|
|
|
def test_get_user_by_id(ldap_client):
|
|
entry = get_user_by_uid(ldap_client, 'conte_mascetti')
|
|
assert entry['uid'] == 'conte_mascetti'
|
|
assert entry['mail'] == 'rmascetti@autistici.org'
|
|
|
|
|
|
def test_get_users_by_ou(ldap_client):
|
|
users = get_users_by_ou(ldap_client, 'Hackers')
|
|
|
|
assert 'conte_mascetti' in [u['uid'] for u in users]
|
|
|
|
|
|
def test_add_user(ldap_client):
|
|
client = ldap_client
|
|
|
|
cn = 'Rosa'
|
|
sn = 'Rossi'
|
|
mail = 'foo@autistici.org'
|
|
uid = 'rosa_rossi'
|
|
|
|
dn = 'uid={},ou=Hackers,{}'.format(
|
|
uid, client.base_dn
|
|
)
|
|
|
|
response_id = client.connection.add(
|
|
dn,
|
|
attributes={
|
|
'objectClass': [
|
|
'inetOrgPerson',
|
|
'organizationalPerson',
|
|
'person', 'top'
|
|
],
|
|
'cn': cn,
|
|
'sn': sn,
|
|
'mail': mail
|
|
}
|
|
)
|
|
|
|
response, result, request = client.connection.get_response(
|
|
response_id, get_request=True
|
|
)
|
|
|
|
print("Request: {}".format(request))
|
|
print("Response: {}".format(response))
|
|
print("Result: {}".format(result))
|
|
|
|
entry = get_user_by_uid(ldap_client, uid)
|
|
assert entry['uid'] == uid
|
|
assert entry['mail'] == mail
|