Skip to content

Commit

Permalink
added more tests for sub-module ldap.dn
Browse files Browse the repository at this point in the history
  • Loading branch information
stroeder authored and Petr Viktorin committed Nov 22, 2017
1 parent 1c23992 commit 9935cb8
Show file tree
Hide file tree
Showing 2 changed files with 202 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Lib/
Tests/
* scripts do not directly call SlapdTestCase.setUpClass() anymore
* added LDIF test with folded, base64-encoded attribute
* added more tests for sub-module ldap.dn

----------------------------------------------------------------
Released 2.5.1 2017-11-12
Expand Down
201 changes: 201 additions & 0 deletions Tests/t_ldap_dn.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,206 @@ def test_is_dn(self):
True
)

def test_escape_dn_chars(self):
"""
test function escape_dn_chars()
"""
self.assertEqual(ldap.dn.escape_dn_chars('foobar'), 'foobar')
self.assertEqual(ldap.dn.escape_dn_chars('foo,bar'), 'foo\\,bar')
self.assertEqual(ldap.dn.escape_dn_chars('foo=bar'), 'foo\\=bar')
self.assertEqual(ldap.dn.escape_dn_chars('foo#bar'), 'foo#bar')
self.assertEqual(ldap.dn.escape_dn_chars('#foobar'), '\\#foobar')
self.assertEqual(ldap.dn.escape_dn_chars('foo bar'), 'foo bar')
self.assertEqual(ldap.dn.escape_dn_chars(' foobar'), '\\ foobar')

def test_str2dn(self):
"""
test function str2dn()
"""
self.assertEqual(ldap.dn.str2dn(''), [])
self.assertEqual(
ldap.dn.str2dn('uid=test42,ou=Testing,dc=example,dc=com'),
[
[('uid', 'test42', 1)],
[('ou', 'Testing', 1)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]
)
self.assertEqual(
ldap.dn.str2dn('uid=test42+uidNumber=42,ou=Testing,dc=example,dc=com'),
[
[('uid', 'test42', 1), ('uidNumber', '42', 1) ],
[('ou', 'Testing', 1)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]
)
self.assertEqual(
ldap.dn.str2dn('uid=test42,ou=Testing,dc=example,dc=com', flags=0),
[
[('uid', 'test42', 1)],
[('ou', 'Testing', 1)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]
)
self.assertEqual(
ldap.dn.str2dn('uid=test\\, 42,ou=Testing,dc=example,dc=com', flags=0),
[
[('uid', 'test, 42', 1)],
[('ou', 'Testing', 1)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]
)
self.assertEqual(
ldap.dn.str2dn('cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f,dc=example,dc=com', flags=0),
[
[('cn', '\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 4)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]
)
self.assertEqual(
ldap.dn.str2dn('cn=\\c3\\a4\\c3\\b6\\c3\\bc\\c3\\84\\c3\\96\\c3\\9c\\c3\\9f,dc=example,dc=com', flags=0),
[
[('cn', '\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 4)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]
)

def test_dn2str(self):
"""
test function dn2str()
"""
self.assertEqual(ldap.dn.str2dn(''), [])
self.assertEqual(
ldap.dn.dn2str([
[('uid', 'test42', 1)],
[('ou', 'Testing', 1)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]),
'uid=test42,ou=Testing,dc=example,dc=com',
)
self.assertEqual(
ldap.dn.dn2str([
[('uid', 'test42', 1)],
[('ou', 'Testing', 1)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]),
'uid=test42,ou=Testing,dc=example,dc=com'
)
self.assertEqual(
ldap.dn.dn2str([
[('uid', 'test42', 1), ('uidNumber', '42', 1)],
[('ou', 'Testing', 1)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]),
'uid=test42+uidNumber=42,ou=Testing,dc=example,dc=com'
)
self.assertEqual(
ldap.dn.dn2str([
[('uid', 'test, 42', 1)],
[('ou', 'Testing', 1)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]),
'uid=test\\, 42,ou=Testing,dc=example,dc=com'
)
self.assertEqual(
ldap.dn.dn2str([
[('cn', '\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 4)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]),
'cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f,dc=example,dc=com'
)
self.assertEqual(
ldap.dn.dn2str([
[('cn', '\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 4)],
[('dc', 'example', 1)],
[('dc', 'com', 1)]
]),
'cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f,dc=example,dc=com'
)

def test_explode_dn(self):
"""
test function explode_dn()
"""
self.assertEqual(ldap.dn.explode_dn(''), [])
self.assertEqual(
ldap.dn.explode_dn('uid=test42,ou=Testing,dc=example,dc=com'),
['uid=test42', 'ou=Testing', 'dc=example', 'dc=com']
)
self.assertEqual(
ldap.dn.explode_dn('uid=test42,ou=Testing,dc=example,dc=com', flags=0),
['uid=test42', 'ou=Testing', 'dc=example', 'dc=com']
)
self.assertEqual(
ldap.dn.explode_dn('uid=test42,ou=Testing,dc=example,dc=com', notypes=True),
['test42', 'Testing', 'example', 'com']
)
self.assertEqual(
ldap.dn.explode_dn('uid=test\\, 42,ou=Testing,dc=example,dc=com', flags=0),
['uid=test\\, 42', 'ou=Testing', 'dc=example', 'dc=com']
)
self.assertEqual(
ldap.dn.explode_dn('cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f,dc=example,dc=com', flags=0),
['cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 'dc=example', 'dc=com']
)
self.assertEqual(
ldap.dn.explode_dn('cn=\\c3\\a4\\c3\\b6\\c3\\bc\\c3\\84\\c3\\96\\c3\\9c\\c3\\9f,dc=example,dc=com', flags=0),
['cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 'dc=example', 'dc=com']
)

def test_explode_rdn(self):
"""
test function explode_rdn()
"""
self.assertEqual(ldap.dn.explode_rdn(''), [])
self.assertEqual(
ldap.dn.explode_rdn('uid=test42'),
['uid=test42']
)
self.assertEqual(
ldap.dn.explode_rdn('uid=test42', notypes=False, flags=0),
['uid=test42']
)
self.assertEqual(
ldap.dn.explode_rdn('uid=test42', notypes=0, flags=0),
['uid=test42']
)
self.assertEqual(
ldap.dn.explode_rdn('uid=test42+uidNumber=42', flags=0),
['uid=test42', 'uidNumber=42']
)
self.assertEqual(
ldap.dn.explode_rdn('uid=test42', notypes=True),
['test42']
)
self.assertEqual(
ldap.dn.explode_rdn('uid=test42', notypes=1),
['test42']
)
self.assertEqual(
ldap.dn.explode_rdn('uid=test\\+ 42', flags=0),
['uid=test\\+ 42']
)
self.assertEqual(
ldap.dn.explode_rdn('cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', flags=0),
['cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f']
)
self.assertEqual(
ldap.dn.explode_rdn('cn=\\c3\\a4\\c3\\b6\\c3\\bc\\c3\\84\\c3\\96\\c3\\9c\\c3\\9f', flags=0),
['cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f']
)


if __name__ == '__main__':
unittest.main()

0 comments on commit 9935cb8

Please sign in to comment.