Blame | Last modification | View Log | SVN | RSS feed
import logging as loglog.basicConfig(level=log.DEBUG,format='%(asctime)s %(levelname)s %(message)s',filename=__name__ + '.log',filemode='w')import unittestfrom TCPServer import TCPServerfrom TCPClient import TCPClientimport timeclass CanPktTests(unittest.TestCase):client = Noneserver = NoneserverNotifier = NoneserverRunning = Falsedef setUp(self):"""Call before every test case."""passdef tearDown(self):"""Call after every test case."""if self.serverRunning:self.stopServer()class ServerNotifier():parent = NoneUNDEFINED = 0TERMINATE = 1def __init__(self, parent):self.parent = parentdef notify(self, msg):if msg == self.TERMINATE:log.debug('Server terminate notify')self.parent.serverRunning = Falsedef startServer(self):self.serverNotifier = self.ServerNotifier(self)self.server = TCPServer(27000, self.serverNotifier)assert self.server.start() == Trueself.serverRunning = Truedef stopServer(self):assert self.serverRunning == Trueself.server.stop()waitTime = 0while self.serverRunning:log.debug('Waiting 0.2s for server shutdown..')time.sleep(0.2)waitTime += 0.2if waitTime > 4:log.debug('Giving up!')assert Falsebreakdef startClient(self):self.client = TCPClient('localhost', 27000)return self.client.connect(1)def stopClient(self):self.client.disconnect()time.sleep(0.1)def testATcpServer(self):self.startServer()self.stopServer()def testBTcpClientNegative(self):assert self.startClient() == Falseself.stopClient()def testCTcpServerWithSingleClient(self):self.startServer()self.startClient()self.stopClient()self.stopServer()def testDTcpConnection(self):log.debug('testTcpConnection')self.startServer()assert self.startClient() == Truelog.debug('Server sends hej')self.server.writeAll('hej')time.sleep(0.5)resp = str(self.client.read())log.debug('Client gets:' + resp)assert (resp == '\'hej\'')self.stopClient()self.stopServer()