def testConnectByService(self):
serv = socket.getservbyname
d = defer.succeed(None)
try:
s = MyServerFactory()
port = reactor.listenTCP(0, s, interface="127.0.0.1")
self.n = port.getHost().port
socket.getservbyname = (lambda s, p,n=self.n:
s == 'http' and p == 'tcp' and n or 10)
self.ports.append(port)
cf = MyClientFactory()
try:
c = reactor.connectTCP('127.0.0.1', 'http', cf)
except:
socket.getservbyname = serv
raise
d = loopUntil(
lambda: (getattr(s, 'protocol', None) is not None and
getattr(cf, 'protocol', None) is not None))
d.addBoth(lambda x:
self.cleanPorts(port, c.transport, cf.protocol.transport))
finally:
socket.getservbyname = serv
d.addCallback(lambda x : self.assert_(s.called,
'%s was not called' % (s,)))
return d
评论列表
文章目录