def testConnect(self): messages = [] class Interceptor(object): def processConnection(self): messages.append((yield)) server = Server(self.reactor, self.port) server.addObserver(Interceptor()) sok = self.send('localhost', self.port, 'a message') self.reactor.step().step() self.assertEquals(['a message'], messages) sok.close() server.stop()
def testShutdownAndClose(self): class Interceptor(object): def processConnection(self): yield 'over en uit' server = Server(self.reactor, self.port) server.addObserver(Interceptor()) connection = self.send('localhost', self.port, 'a message') while connection not in select([connection],[],[],0)[0]: self.reactor.step() self.assertEquals('over en uit', connection.recv(99)) try: connection.send('aap') self.fail('connection is closed, this must raise an io error') except socket.error, e: pass
def testShutdownAndClose(self): class Interceptor(object): def processConnection(self): yield 'over en uit' server = Server(self.reactor, self.port) server.addObserver(Interceptor()) connection = self.send('localhost', self.port, 'a message') while connection not in select([connection], [], [], 0)[0]: self.reactor.step() self.assertEquals('over en uit', connection.recv(99)) try: connection.send('aap') self.fail('connection is closed, this must raise an io error') except socket.error, e: pass
def testShutdownAndCloseInCaseOfException(self): class Interceptor(object): def processConnection(self): raise Exception('oops') yield 'over en uit' server = Server(self.reactor, self.port) server.addObserver(Interceptor()) connection = self.send('localhost', self.port, 'a message') sys.stderr = StringIO() try: self.reactor.step() finally: sys.stderr = sys.__stderr__ try: connection.send('aap') self.fail('connection is closed, this must raise an io error') except socket.error, e: pass
def XXXXXXXXXXXXXXXXtestMultipleConnectionsAndSomeShortConversation(self): class MyHandler(object): def processConnection(self): message = yield yield 'Goodbye ' + message server = Server(self.reactor, self.port) server.addObserver(MyHandler()) conn3 = self.send('localhost', self.port, 'Klaas') conn1 = self.send('localhost', self.port, 'Thijs') conn2 = self.send('localhost', self.port, 'Johan') readable = [] while conn1 not in readable or conn2 not in readable or conn3 not in readable: self.reactor.step() readable = select([conn1, conn2, conn3],[],[],0)[0] self.assertEquals('Goodbye Thijs', conn1.recv(99)) self.assertEquals('Goodbye Johan', conn2.recv(99)) self.assertEquals('Goodbye Klaas', conn3.recv(99)) conn1.close() conn2.close() conn3.close() server.stop()
def XXXXXXXXXXXXXXXXtestMultipleConnectionsAndSomeShortConversation(self): class MyHandler(object): def processConnection(self): message = yield yield 'Goodbye ' + message server = Server(self.reactor, self.port) server.addObserver(MyHandler()) conn3 = self.send('localhost', self.port, 'Klaas') conn1 = self.send('localhost', self.port, 'Thijs') conn2 = self.send('localhost', self.port, 'Johan') readable = [] while conn1 not in readable or conn2 not in readable or conn3 not in readable: self.reactor.step() readable = select([conn1, conn2, conn3], [], [], 0)[0] self.assertEquals('Goodbye Thijs', conn1.recv(99)) self.assertEquals('Goodbye Johan', conn2.recv(99)) self.assertEquals('Goodbye Klaas', conn3.recv(99)) conn1.close() conn2.close() conn3.close() server.stop()