[Twisted-Python] Conch Testing server and client

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Fri Jul 1 08:42:55 EDT 2011


On 12:14 pm, anshul.singhle at gmail.com wrote:
>Hi,
>I have to write tests for a custom conch server. My approach is to make 
>a
>test client and then connect it to my server in my testcase. I have 
>been
>able to create a client that can interface with my server, but i'm not 
>able
>to do it from within the test case.
>What I'm trying is :
>class TestAccountStatus(unittest.TestCase):
>     def setUp(self):
>         ssh_server = Server()
>         self.server = reactor.listenTCP(ssh_server.port,
>                      ssh_server.application(),
>                      interface=ssh_server.interface)
>     def tearDown(self):
>         server, self.server = self.server,None
>         return server.stopListening()
>     def test_1(self):
>         d = protocol.ClientCreator(reactor,
>SimpleTransport).connectTCP('localhost', self.server.getHost().port)
>         return d
>The transport SimpleTransport is my custom transport.SSHClientTransport
>instance. The class Server() is a wrapper around an SSHFactory 
>insatance.
>The problem I'm facing is that after this line >
>d = protocol.ClientCreator(reactor, 
>SimpleTransport).connectTCP('localhost',
>self.server.getHost().port)
>I have to write reactor.run(), otherwise the client is not starting. If 
>I
>write reactor.run() the test doesn't stop (understandable since the 
>reactor
>isn't being stopped).
>Basically I want to know how I can start the client without running
>reactor.run()

The reactor should be started for you, automatically.

Jean-Paul



More information about the Twisted-Python mailing list