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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy