1 """
2 Test cases for ldaptor.protocols.ldap.proxy module.
3 """
4
5 from twisted.trial import unittest
6 from twisted.internet import reactor, error
7 from ldaptor.protocols.ldap import proxy, ldaperrors
8 from ldaptor.protocols import pureldap
9 from ldaptor import testutil
10
11 -class Proxy(unittest.TestCase):
14
22
24 server = self.createServer([ pureldap.LDAPBindResponse(resultCode=0),
25 ],
26 [ pureldap.LDAPSearchResultEntry('cn=foo,dc=example,dc=com', [('a', ['b'])]),
27 pureldap.LDAPSearchResultEntry('cn=bar,dc=example,dc=com', [('b', ['c'])]),
28 pureldap.LDAPSearchResultDone(ldaperrors.Success.resultCode),
29 ],
30 )
31 server.dataReceived(str(pureldap.LDAPMessage(pureldap.LDAPBindRequest(), id=2)))
32 server.dataReceived(str(pureldap.LDAPMessage(pureldap.LDAPSearchRequest(), id=3)))
33 reactor.iterate()
34 self.assertEquals(server.transport.value(),
35 str(pureldap.LDAPMessage(pureldap.LDAPBindResponse(resultCode=0), id=2))
36 +str(pureldap.LDAPMessage(pureldap.LDAPSearchResultEntry('cn=foo,dc=example,dc=com', [('a', ['b'])]), id=3))
37 +str(pureldap.LDAPMessage(pureldap.LDAPSearchResultEntry('cn=bar,dc=example,dc=com', [('b', ['c'])]), id=3))
38 +str(pureldap.LDAPMessage(pureldap.LDAPSearchResultDone(ldaperrors.Success.resultCode), id=3)))
39
41 server = self.createServer([ pureldap.LDAPBindResponse(resultCode=0),
42 ],
43 [],
44 )
45 server.dataReceived(str(pureldap.LDAPMessage(pureldap.LDAPBindRequest(), id=2)))
46 reactor.iterate()
47 client = server.client
48 client.assertSent(pureldap.LDAPBindRequest())
49 self.assertEquals(server.transport.value(),
50 str(pureldap.LDAPMessage(pureldap.LDAPBindResponse(resultCode=0), id=2)))
51 server.dataReceived(str(pureldap.LDAPMessage(pureldap.LDAPUnbindRequest(), id=3)))
52 server.connectionLost(error.ConnectionDone)
53 reactor.iterate()
54 client.assertSent(pureldap.LDAPBindRequest(),
55 pureldap.LDAPUnbindRequest())
56 self.assertEquals(server.transport.value(),
57 str(pureldap.LDAPMessage(pureldap.LDAPBindResponse(resultCode=0), id=2)))
58
76