Reconnect on socket failure
This commit is contained in:
@@ -239,12 +239,38 @@ Login lmw using the object creation user, password.
|
||||
Raises a LmwLoginFailure exception on failure
|
||||
"""
|
||||
li="LI " + self.user + "," + self.password + "\r"
|
||||
#
|
||||
# TODO: Check connect
|
||||
#
|
||||
self.send(li)
|
||||
d = self.recv()
|
||||
if (d[0] != '!'):
|
||||
self.closesocket()
|
||||
raise LmwLoginFailure(self.user, d)
|
||||
|
||||
def sendrecv(self, cmd):
|
||||
"""sendrecv(cmd)
|
||||
|
||||
send the command and recieve the answer.
|
||||
retry on socket failure.
|
||||
"""
|
||||
c = 0
|
||||
ret = ""
|
||||
while (ret == "") and (c < 3):
|
||||
try:
|
||||
self.send(cmd)
|
||||
ret = self.recv()
|
||||
except LmwSipConnectError as e:
|
||||
if (self.user != None):
|
||||
self.connect()
|
||||
self.login()
|
||||
c+=1
|
||||
ret=""
|
||||
else:
|
||||
c=3
|
||||
raise(e)
|
||||
return(ret)
|
||||
|
||||
def ti(self):
|
||||
"""ti()
|
||||
|
||||
@@ -253,8 +279,7 @@ Request the time from lmw and returns the string.
|
||||
Raises a LmwCmdWarn of failure
|
||||
"""
|
||||
ti="TI " + self.meetnet + "\r"
|
||||
self.send(ti)
|
||||
d = self.recv()
|
||||
d = self.sendrecv(ti)
|
||||
return (d[2:-1])
|
||||
|
||||
def cmd(self, process, location, parameter, time_delta, day,
|
||||
@@ -286,8 +311,7 @@ Returns:
|
||||
parameter + "," + time_delta + "," + day + "," + \
|
||||
time_of_day + data + "\r"
|
||||
|
||||
self.send(cmdstr)
|
||||
d = self.recv()
|
||||
d = self.sendrecv(cmdstr)
|
||||
if (d[0] != '!'):
|
||||
raise LmwCmdWarn(cmdstr, d)
|
||||
return (d[2:-1])
|
||||
|
@@ -49,6 +49,11 @@ class lmwsipTest(unittest.TestCase):
|
||||
self.login()
|
||||
self.assertEqual(type(self.sip.cmd("WN", "DUMMY", "D10", "+00:59", "2020-01-01", "00:00")), str)
|
||||
|
||||
def test_cmderr(self):
|
||||
self.login()
|
||||
with self.assertRaises(lmwsip.LmwCmdWarn):
|
||||
self.assertEqual(type(self.sip.cmd("NOP", "DUMMY", "D10", "+00:59", "2020-01-01", "00:00")), str)
|
||||
|
||||
def test_value(self):
|
||||
self.login()
|
||||
self.assertEqual(type(self.sip.value("WN", "DUMMY", "D10")), str)
|
||||
@@ -81,6 +86,16 @@ class lmwsipTest(unittest.TestCase):
|
||||
with self.assertRaises(lmwsip.LmwSipConnectError):
|
||||
self.sip.recv()
|
||||
|
||||
def test_closeti(self):
|
||||
self.login()
|
||||
self.sip.send("CLOSE")
|
||||
self.assertEqual(type(self.sip.ti()), str)
|
||||
|
||||
def test_closecmd(self):
|
||||
self.login()
|
||||
self.sip.send("CLOSE")
|
||||
self.assertEqual(type(self.sip.cmd("WN", "DUMMY", "D10", "+00:59", "2020-01-01", "00:00")), str)
|
||||
|
||||
def test_run(self):
|
||||
capturedOutput = io.StringIO()
|
||||
sys.stdout = capturedOutput
|
||||
|
Reference in New Issue
Block a user