reconnect test

This commit is contained in:
Marcel Nijenhof
2020-11-08 13:12:53 +01:00
parent 57f6619c80
commit 17301b70b3
2 changed files with 17 additions and 3 deletions

View File

@@ -11,6 +11,7 @@ from lmwsip.tests.stubSipServer import sipServer
from lmwsip.run import run from lmwsip.run import run
from datetime import datetime, timedelta from datetime import datetime, timedelta
from dateutil import tz from dateutil import tz
from time import sleep
class myTestArgs(): class myTestArgs():
pass pass
@@ -22,10 +23,11 @@ class lmwsipTest(unittest.TestCase):
self.sip = None self.sip = None
self.sipserver.run() self.sipserver.run()
def login(self): def login(self, **args):
log = logging.basicConfig(level=logging.DEBUG) log = logging.basicConfig(level=logging.DEBUG)
self.sip = lmwsip.LmwSip("USER", "PASS", "localhost", self.sip = lmwsip.LmwSip("USER", "PASS", "localhost",
self.sipserver.port, ssl=False, log=log) self.sipserver.port, ssl=False,
log=log, **args)
def tearDown(self): def tearDown(self):
if self.sip: if self.sip:
@@ -96,6 +98,11 @@ class lmwsipTest(unittest.TestCase):
self.sip.send("CLOSE") self.sip.send("CLOSE")
self.assertEqual(type(self.sip.cmd("WN", "DUMMY", "D10", "+00:59", "2020-01-01", "00:00")), str) self.assertEqual(type(self.sip.cmd("WN", "DUMMY", "D10", "+00:59", "2020-01-01", "00:00")), str)
def test_reconnect(self):
self.login(reconnecttime=1)
sleep(2)
self.assertEqual(self.sip.sendrecv("LOGOUTCOUNT"), "1\r")
def test_run(self): def test_run(self):
capturedOutput = io.StringIO() capturedOutput = io.StringIO()
sys.stdout = capturedOutput sys.stdout = capturedOutput

View File

@@ -41,8 +41,9 @@ import time
import random import random
import socketserver import socketserver
class sipProtocol(socketserver.BaseRequestHandler): logoutcount=0
class sipProtocol(socketserver.BaseRequestHandler):
def match(self, m): def match(self, m):
return(self.data.find(m.encode()) == 0) return(self.data.find(m.encode()) == 0)
@@ -78,6 +79,7 @@ class sipProtocol(socketserver.BaseRequestHandler):
self.send(res) self.send(res)
def handle(self): def handle(self):
global logoutcount
self.read() self.read()
while self.data: while self.data:
if self.match("LI USER,PASS"): if self.match("LI USER,PASS"):
@@ -86,7 +88,10 @@ class sipProtocol(socketserver.BaseRequestHandler):
self.send("! 20-JAN-01 00:00:00") self.send("! 20-JAN-01 00:00:00")
elif self.match("WN LMW,DUMMY,D10"): elif self.match("WN LMW,DUMMY,D10"):
self.meting() self.meting()
elif self.match("LOGOUTCOUNT"):
self.send(str(logoutcount))
elif self.match("LO"): elif self.match("LO"):
logoutcount+=1
self.send("!") self.send("!")
elif self.match("CLOSE"): elif self.match("CLOSE"):
self.request.close() self.request.close()
@@ -115,4 +120,6 @@ class sipServer(socketserver.TCPServer):
self.server_close() self.server_close()
if __name__ == '__main__': if __name__ == '__main__':
s = sipServer()
s.run()
pass pass