1 """
2 Test cases for ldaptor.protocols.ldap.autofill.posixAccount module.
3 """
4
5 from twisted.trial import unittest
6 from ldaptor.protocols.ldap import ldapsyntax, autofill
7 from ldaptor.protocols import pureldap
8 from ldaptor.protocols.ldap.autofill import posixAccount
9 from ldaptor.testutil import LDAPClientTestDriver
10
28 d.addCallbacks(_cbMustRaise,
29 _eb)
30 return d
31
33 """Test that fields get their default values."""
34
35 client = LDAPClientTestDriver(
36
37 [ pureldap.LDAPSearchResultDone(resultCode=0,
38 matchedDN='',
39 errorMessage=''),],
40
41
42 [ pureldap.LDAPSearchResultEntry(objectName='',
43 attributes=[('objectClass',
44 ('foo',
45 'posixAccount',
46 'bar'))]),
47 pureldap.LDAPSearchResultDone(resultCode=0,
48 matchedDN='',
49 errorMessage=''),],
50
51 [ pureldap.LDAPSearchResultDone(resultCode=0,
52 matchedDN='',
53 errorMessage=''),],
54
55
56 [ pureldap.LDAPSearchResultDone(resultCode=0,
57 matchedDN='',
58 errorMessage=''),],
59
60
61 [ pureldap.LDAPSearchResultDone(resultCode=0,
62 matchedDN='',
63 errorMessage=''),],
64
65
66 [ pureldap.LDAPSearchResultDone(resultCode=0,
67 matchedDN='',
68 errorMessage=''),],
69
70 [ pureldap.LDAPSearchResultEntry(objectName='',
71 attributes=[('objectClass',
72 ('foo',
73 'posixAccount',
74 'bar'))]),
75 pureldap.LDAPSearchResultDone(resultCode=0,
76 matchedDN='',
77 errorMessage=''),],
78
79
80 [ pureldap.LDAPSearchResultDone(resultCode=0,
81 matchedDN='',
82 errorMessage=''),],
83
84
85 [ pureldap.LDAPSearchResultEntry(objectName='',
86 attributes=[('objectClass',
87 ('foo',
88 'posixAccount',
89 'bar'))]),
90 pureldap.LDAPSearchResultDone(resultCode=0,
91 matchedDN='',
92 errorMessage=''),],
93
94
95 [ pureldap.LDAPSearchResultDone(resultCode=0,
96 matchedDN='',
97 errorMessage=''),],
98
99
100 [ pureldap.LDAPSearchResultEntry(objectName='',
101 attributes=[('objectClass',
102 ('foo',
103 'posixAccount',
104 'bar'))]),
105 pureldap.LDAPSearchResultDone(resultCode=0,
106 matchedDN='',
107 errorMessage=''),],
108
109
110 [ pureldap.LDAPSearchResultEntry(objectName='',
111 attributes=[('objectClass',
112 ('foo',
113 'posixAccount',
114 'bar'))]),
115 pureldap.LDAPSearchResultDone(resultCode=0,
116 matchedDN='',
117 errorMessage=''),],
118 )
119
120 o=ldapsyntax.LDAPEntryWithAutoFill(client=client,
121 dn='cn=foo,dc=example,dc=com',
122 attributes={
123 'objectClass': ['posixAccount', 'other'],
124 })
125
126 d = o.addAutofiller(posixAccount.Autofill_posix(baseDN='dc=example,dc=com'))
127 d.addCallback(self._cb_testDefaultSetting, client, o)
128 return d
129
131 client.assertSent(
132 *[
133
134 pureldap.LDAPSearchRequest(
135 baseObject='dc=example,dc=com', scope=2,
136 derefAliases=0, sizeLimit=1, timeLimit=0, typesOnly=0,
137 filter=pureldap.LDAPFilter_equalityMatch(attributeDesc=pureldap.LDAPAttributeDescription(value='uidNumber'),
138 assertionValue=pureldap.LDAPAssertionValue(value='1000')),
139 attributes=()),
140
141 ] + [
142 pureldap.LDAPSearchRequest(
143 baseObject='dc=example,dc=com', scope=2,
144 derefAliases=0, sizeLimit=1, timeLimit=0, typesOnly=0,
145 filter=pureldap.LDAPFilter_equalityMatch(attributeDesc=pureldap.LDAPAttributeDescription(value='gidNumber'),
146 assertionValue=pureldap.LDAPAssertionValue(value=str(x))),
147 attributes=())
148 for x in (1000, 1500, 1250, 1125, 1062, 1031, 1046, 1038, 1042, 1040, 1041)])
149
150 self.failUnless('loginShell' in o)
151 self.failUnlessEqual(o['loginShell'], ['/bin/sh'])
152
153 self.failUnless('uidNumber' in o)
154 self.failUnlessEqual(o['uidNumber'], ['1000'])
155 self.failUnless('gidNumber' in o)
156 self.failUnlessEqual(o['gidNumber'], ['1042'])
157