@@ -34,5 +34,206 @@ def test_is_dn(self):
34
34
True
35
35
)
36
36
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
+
37
238
if __name__ == '__main__' :
38
239
unittest .main ()
0 commit comments