2022-03-02 17:31:48 +00:00
|
|
|
import ldap.dn
|
2021-06-03 13:00:11 +00:00
|
|
|
from canaille.models import Group
|
2022-03-02 17:31:48 +00:00
|
|
|
from canaille.models import User
|
2021-06-03 13:00:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_equality(slapd_connection, foo_group, bar_group):
|
2022-05-08 14:31:17 +00:00
|
|
|
Group.ldap_object_attributes()
|
2021-06-03 13:00:11 +00:00
|
|
|
assert foo_group != bar_group
|
2022-05-08 14:31:17 +00:00
|
|
|
foo_group2 = Group.get(dn=foo_group.dn)
|
2021-06-03 13:00:11 +00:00
|
|
|
assert foo_group == foo_group2
|
2022-03-02 17:31:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_dn_when_leading_space_in_id_attribute(slapd_connection):
|
|
|
|
User.initialize(slapd_connection)
|
|
|
|
user = User(
|
|
|
|
objectClass=["inetOrgPerson"],
|
|
|
|
cn=" Doe", # leading space
|
|
|
|
sn="Doe",
|
|
|
|
uid="user",
|
|
|
|
mail="john@doe.com",
|
|
|
|
)
|
2022-05-08 14:31:17 +00:00
|
|
|
user.save()
|
2022-03-02 17:31:48 +00:00
|
|
|
|
|
|
|
assert ldap.dn.is_dn(user.dn)
|
|
|
|
assert ldap.dn.dn2str(ldap.dn.str2dn(user.dn)) == user.dn
|
2022-11-05 18:52:57 +00:00
|
|
|
assert user.dn == "cn=Doe,ou=users,dc=mydomain,dc=tld"
|
2022-03-02 17:31:48 +00:00
|
|
|
|
2022-05-08 14:31:17 +00:00
|
|
|
user.delete()
|
2022-05-18 09:31:26 +00:00
|
|
|
|
2022-03-02 17:31:48 +00:00
|
|
|
|
|
|
|
def test_dn_when_ldap_special_char_in_id_attribute(slapd_connection):
|
|
|
|
User.initialize(slapd_connection)
|
|
|
|
user = User(
|
|
|
|
objectClass=["inetOrgPerson"],
|
|
|
|
cn="#Doe", # special char
|
|
|
|
sn="Doe",
|
|
|
|
uid="user",
|
|
|
|
mail="john@doe.com",
|
|
|
|
)
|
2022-05-08 14:31:17 +00:00
|
|
|
user.save()
|
2022-03-02 17:31:48 +00:00
|
|
|
|
|
|
|
assert ldap.dn.is_dn(user.dn)
|
|
|
|
assert ldap.dn.dn2str(ldap.dn.str2dn(user.dn)) == user.dn
|
2022-11-05 18:52:57 +00:00
|
|
|
assert user.dn == "cn=\\#Doe,ou=users,dc=mydomain,dc=tld"
|
2022-05-18 09:31:26 +00:00
|
|
|
|
2022-05-08 14:31:17 +00:00
|
|
|
user.delete()
|