def setUp(self): self._log = logging.getLogger( "TestTelnet" ) self._log.debug("\n\nsetUp") self.telnetServer = TestTCPServer(58450) # we set up a tcp server to use as a telnet server self.telnetServer.start() self.telnetServer.ready.wait() self.telnetWrapper = TelnetWrapper("127.0.0.1",58450,'\n')
class TestTelnet(unittest.TestCase): def setUp(self): self._log = logging.getLogger( "TestTelnet" ) self._log.debug("\n\nsetUp") self.telnetServer = TestTCPServer(58450) # we set up a tcp server to use as a telnet server self.telnetServer.start() self.telnetServer.ready.wait() self.telnetWrapper = TelnetWrapper("127.0.0.1",58450,'\n') def makelargestring(self,char): self.bigstring = '' for i in range(1,20000): self.bigstring += char return self.bigstring def tearDown(self): self._log.debug( "\n\ntearDown" ) self.telnetWrapper.close() self.telnetServer.stop() def testWrite(self): #write our test string using the wrapper self.telnetWrapper.write(testConfigstring) #give the server time to recieve it then check if its buffer matches test string time.sleep(1) assert self.telnetServer.data == testConfigstring def testRead(self): # tell server to send out our test string self.telnetServer.send(testConfigstring) # give the server time to send it time.sleep(1) #check our wrapper to see if we have it self.textbuffer = self.telnetWrapper.read() assert (self.textbuffer == testConfigstring) def testReadNonASCII(self): #test to see if we recieve non ascii values ok testchar = chr(255) self._log.debug('Non ASCII Char == %s' %testchar) # tell server to send out our test string self.telnetServer.send(testchar) # give the server time to send it time.sleep(1) #check our wrapper to see if we have it self.textbuffer = self.telnetWrapper.read() self._log.debug('Recieved is : ##%s##' %self.textbuffer) assert (self.textbuffer == testchar) def testReadline(self): # tell server to send out our test strings for line in testConfiglines: self._log.debug("Sending : %s"%line) self.telnetServer.send(line) time.sleep(1) # give the server time to send it self.textbuffer = [] for line in testConfiglines: self._log.debug("Expected : %s"%line) #check our wrapper to see if we have it temp = self.telnetWrapper.readline() self._log.debug("Got : %s" %temp) self.textbuffer.append(temp) assert (self.textbuffer[0] == "hello1") assert (self.textbuffer[1] == "hello2") assert (self.textbuffer[2] == "hello3") def testDoubleWrite(self): #set up sync event self.event = threading.Event() self.aaa = self.makelargestring('a') self.bbb = self.makelargestring('b') #syncwrite will start itself in a new thread self.syncwrite = syncfunctioncall(self.event,self.telnetWrapper.write,self.bbb) # synchronize with syncwrite self.event.wait() #write something at the same time as syncwrite self.telnetWrapper.write(self.aaa) # give the server time to fetch the new data time.sleep(1) assert self.aaa in self.telnetServer.data assert self.bbb in self.telnetServer.data return def testwriteServerdeath(self): self.event = threading.Event() self.aaa = self.makelargestring('a') self.syncdisconnect = syncfunctioncall(self.event,self.telnetServer.stop) self.event.wait() self.telnetWrapper.write(self.aaa) return def testreadServerdeath(self): self.event = threading.Event() self.aaa = self.makelargestring('a') self.telnetServer.send(self.aaa) time.sleep(1) self.syncdisconnect = syncfunctioncall(self.event,self.telnetServer.stop) self.event.wait() self.telnetWrapper.read() return def testreadlineServerdeath(self): self.event = threading.Event() self.newline = "newline\n" self.telnetServer.send(self.newline) time.sleep(1) self.syncdisconnect = syncfunctioncall(self.event,self.telnetServer.stop) self.event.wait() self.telnetWrapper.readline() return def testDummy(self): return