#!/usr/bin/python import sys import io import unittest import lmwsip import lmwsip.tests.stubSipServer import logging from lmwsip.tests.stubSipServer import sipServer from lmwsip.run import run from datetime import datetime, timedelta from dateutil import tz class myTestArgs(): pass class lmwsipTest(unittest.TestCase): def setUp(self): self.sipserver = sipServer() self.sip = None self.sipserver.run() def login(self): log = logging.basicConfig(level=logging.DEBUG) self.sip = lmwsip.LmwSip("USER", "PASS", "localhost", self.sipserver.port, ssl=False, log=log) def tearDown(self): if self.sip: self.sip.closesocket() self.sipserver.kill() def test_sipobj(self): self.login() self.assertEqual(type(self.sip), lmwsip.LmwSip) def test_loginfail(self): with self.assertRaises(lmwsip.LmwLoginFailure): self.sip = lmwsip.LmwSip("FAIL", "FAIL", "localhost", self.sipserver.port, ssl=False) def test_ti(self): self.login() self.assertEqual(type(self.sip.ti()), str) def test_cmd(self): 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) def test_logout(self): self.login() self.assertEqual(self.sip.logout(), None) def test_lmwTimeSerie(self): self.login() timezone = tz.gettz('GMT+1') res = self.sip.timeSerie("WN", "DUMMY", "D10", datetime.now(timezone)-timedelta(minutes=60), datetime.now(timezone)) self.assertEqual(type(res.ts), list) self.assertEqual(len(res.ts), 6) self.assertEqual(res.ts[1][1][0], '1') def test_roundtime(self): self.login() timezone = tz.gettz('GMT+1') t1 = datetime(2020, 1, 1, 0, 10, 0, 0, timezone) t2 = datetime(2020, 1, 1, 0, 0, 0, 1, timezone) self.assertEqual(self.sip._roundtime_(t1, "D10"), t1) self.assertEqual(self.sip._roundtime_(t2, "D10"), t1) def test_closerecv(self): self.login() self.sip.send("CLOSE") 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 args = myTestArgs() args.debug = "DEBUG" args.host = "localhost" args.port = self.sipserver.port args.unencrypted = True args.acceptssl = True args.cleartelnet = False args.time = "+00:59" args.date = "2020-01-01" args.files = [open("lmwsip/tests/test.sip")] run(args) args.files[0].close() self.assertEqual(capturedOutput.getvalue().find("!")>= 0, True) self.assertEqual(capturedOutput.getvalue().find("?"), -1) sys.stdout = sys.__stdout__ if __name__ == '__main__': unittest.main()