Skip to content

Commit 322573a

Browse files
author
stroeder
committed
added more tests for sub-module ldap.dn
1 parent ab130d9 commit 322573a

File tree

2 files changed

+202
-0
lines changed

2 files changed

+202
-0
lines changed

CHANGES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Lib/
2525
Tests/
2626
* scripts do not directly call SlapdTestCase.setUpClass() anymore
2727
* added LDIF test with folded, base64-encoded attribute
28+
* added more tests for sub-module ldap.dn
2829

2930
----------------------------------------------------------------
3031
Released 2.5.1 2017-11-12

Tests/t_ldap_dn.py

Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,206 @@ def test_is_dn(self):
3434
True
3535
)
3636

37+
def test_escape_dn_chars(self):
38+
"""
39+
test function escape_dn_chars()
40+
"""
41+
self.assertEqual(ldap.dn.escape_dn_chars('foobar'), 'foobar')
42+
self.assertEqual(ldap.dn.escape_dn_chars('foo,bar'), 'foo\\,bar')
43+
self.assertEqual(ldap.dn.escape_dn_chars('foo=bar'), 'foo\\=bar')
44+
self.assertEqual(ldap.dn.escape_dn_chars('foo#bar'), 'foo#bar')
45+
self.assertEqual(ldap.dn.escape_dn_chars('#foobar'), '\\#foobar')
46+
self.assertEqual(ldap.dn.escape_dn_chars('foo bar'), 'foo bar')
47+
self.assertEqual(ldap.dn.escape_dn_chars(' foobar'), '\\ foobar')
48+
49+
def test_str2dn(self):
50+
"""
51+
test function str2dn()
52+
"""
53+
self.assertEqual(ldap.dn.str2dn(''), [])
54+
self.assertEqual(
55+
ldap.dn.str2dn('uid=test42,ou=Testing,dc=example,dc=com'),
56+
[
57+
[('uid', 'test42', 1)],
58+
[('ou', 'Testing', 1)],
59+
[('dc', 'example', 1)],
60+
[('dc', 'com', 1)]
61+
]
62+
)
63+
self.assertEqual(
64+
ldap.dn.str2dn('uid=test42+uidNumber=42,ou=Testing,dc=example,dc=com'),
65+
[
66+
[('uid', 'test42', 1), ('uidNumber', '42', 1) ],
67+
[('ou', 'Testing', 1)],
68+
[('dc', 'example', 1)],
69+
[('dc', 'com', 1)]
70+
]
71+
)
72+
self.assertEqual(
73+
ldap.dn.str2dn('uid=test42,ou=Testing,dc=example,dc=com', flags=0),
74+
[
75+
[('uid', 'test42', 1)],
76+
[('ou', 'Testing', 1)],
77+
[('dc', 'example', 1)],
78+
[('dc', 'com', 1)]
79+
]
80+
)
81+
self.assertEqual(
82+
ldap.dn.str2dn('uid=test\\, 42,ou=Testing,dc=example,dc=com', flags=0),
83+
[
84+
[('uid', 'test, 42', 1)],
85+
[('ou', 'Testing', 1)],
86+
[('dc', 'example', 1)],
87+
[('dc', 'com', 1)]
88+
]
89+
)
90+
self.assertEqual(
91+
ldap.dn.str2dn('cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f,dc=example,dc=com', flags=0),
92+
[
93+
[('cn', '\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 4)],
94+
[('dc', 'example', 1)],
95+
[('dc', 'com', 1)]
96+
]
97+
)
98+
self.assertEqual(
99+
ldap.dn.str2dn('cn=\\c3\\a4\\c3\\b6\\c3\\bc\\c3\\84\\c3\\96\\c3\\9c\\c3\\9f,dc=example,dc=com', flags=0),
100+
[
101+
[('cn', '\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 4)],
102+
[('dc', 'example', 1)],
103+
[('dc', 'com', 1)]
104+
]
105+
)
106+
107+
def test_dn2str(self):
108+
"""
109+
test function dn2str()
110+
"""
111+
self.assertEqual(ldap.dn.str2dn(''), [])
112+
self.assertEqual(
113+
ldap.dn.dn2str([
114+
[('uid', 'test42', 1)],
115+
[('ou', 'Testing', 1)],
116+
[('dc', 'example', 1)],
117+
[('dc', 'com', 1)]
118+
]),
119+
'uid=test42,ou=Testing,dc=example,dc=com',
120+
)
121+
self.assertEqual(
122+
ldap.dn.dn2str([
123+
[('uid', 'test42', 1)],
124+
[('ou', 'Testing', 1)],
125+
[('dc', 'example', 1)],
126+
[('dc', 'com', 1)]
127+
]),
128+
'uid=test42,ou=Testing,dc=example,dc=com'
129+
)
130+
self.assertEqual(
131+
ldap.dn.dn2str([
132+
[('uid', 'test42', 1), ('uidNumber', '42', 1)],
133+
[('ou', 'Testing', 1)],
134+
[('dc', 'example', 1)],
135+
[('dc', 'com', 1)]
136+
]),
137+
'uid=test42+uidNumber=42,ou=Testing,dc=example,dc=com'
138+
)
139+
self.assertEqual(
140+
ldap.dn.dn2str([
141+
[('uid', 'test, 42', 1)],
142+
[('ou', 'Testing', 1)],
143+
[('dc', 'example', 1)],
144+
[('dc', 'com', 1)]
145+
]),
146+
'uid=test\\, 42,ou=Testing,dc=example,dc=com'
147+
)
148+
self.assertEqual(
149+
ldap.dn.dn2str([
150+
[('cn', '\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 4)],
151+
[('dc', 'example', 1)],
152+
[('dc', 'com', 1)]
153+
]),
154+
'cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f,dc=example,dc=com'
155+
)
156+
self.assertEqual(
157+
ldap.dn.dn2str([
158+
[('cn', '\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 4)],
159+
[('dc', 'example', 1)],
160+
[('dc', 'com', 1)]
161+
]),
162+
'cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f,dc=example,dc=com'
163+
)
164+
165+
def test_explode_dn(self):
166+
"""
167+
test function explode_dn()
168+
"""
169+
self.assertEqual(ldap.dn.explode_dn(''), [])
170+
self.assertEqual(
171+
ldap.dn.explode_dn('uid=test42,ou=Testing,dc=example,dc=com'),
172+
['uid=test42', 'ou=Testing', 'dc=example', 'dc=com']
173+
)
174+
self.assertEqual(
175+
ldap.dn.explode_dn('uid=test42,ou=Testing,dc=example,dc=com', flags=0),
176+
['uid=test42', 'ou=Testing', 'dc=example', 'dc=com']
177+
)
178+
self.assertEqual(
179+
ldap.dn.explode_dn('uid=test42,ou=Testing,dc=example,dc=com', notypes=True),
180+
['test42', 'Testing', 'example', 'com']
181+
)
182+
self.assertEqual(
183+
ldap.dn.explode_dn('uid=test\\, 42,ou=Testing,dc=example,dc=com', flags=0),
184+
['uid=test\\, 42', 'ou=Testing', 'dc=example', 'dc=com']
185+
)
186+
self.assertEqual(
187+
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),
188+
['cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 'dc=example', 'dc=com']
189+
)
190+
self.assertEqual(
191+
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),
192+
['cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', 'dc=example', 'dc=com']
193+
)
194+
195+
def test_explode_rdn(self):
196+
"""
197+
test function explode_rdn()
198+
"""
199+
self.assertEqual(ldap.dn.explode_rdn(''), [])
200+
self.assertEqual(
201+
ldap.dn.explode_rdn('uid=test42'),
202+
['uid=test42']
203+
)
204+
self.assertEqual(
205+
ldap.dn.explode_rdn('uid=test42', notypes=False, flags=0),
206+
['uid=test42']
207+
)
208+
self.assertEqual(
209+
ldap.dn.explode_rdn('uid=test42', notypes=0, flags=0),
210+
['uid=test42']
211+
)
212+
self.assertEqual(
213+
ldap.dn.explode_rdn('uid=test42+uidNumber=42', flags=0),
214+
['uid=test42', 'uidNumber=42']
215+
)
216+
self.assertEqual(
217+
ldap.dn.explode_rdn('uid=test42', notypes=True),
218+
['test42']
219+
)
220+
self.assertEqual(
221+
ldap.dn.explode_rdn('uid=test42', notypes=1),
222+
['test42']
223+
)
224+
self.assertEqual(
225+
ldap.dn.explode_rdn('uid=test\\+ 42', flags=0),
226+
['uid=test\\+ 42']
227+
)
228+
self.assertEqual(
229+
ldap.dn.explode_rdn('cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f', flags=0),
230+
['cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f']
231+
)
232+
self.assertEqual(
233+
ldap.dn.explode_rdn('cn=\\c3\\a4\\c3\\b6\\c3\\bc\\c3\\84\\c3\\96\\c3\\9c\\c3\\9f', flags=0),
234+
['cn=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f']
235+
)
236+
237+
37238
if __name__ == '__main__':
38239
unittest.main()

0 commit comments

Comments
 (0)