#!/usr/bin/python import sys import io import unittest import lmwsip import stubSipServer 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 = stubSipServer.sipServer() self.sip = None self.sipserver.run() def login(self): self.sip = lmwsip.LmwSip("USER", "PASS", "localhost", self.sipserver.port, ssl=False) 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_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_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_run(self): capturedOutput = io.StringIO() sys.stdout = capturedOutput args = myTestArgs() args.debug = "WARN" args.host = "localhost" args.port = self.sipserver.port args.unencrypted = True args.cleartelnet = False args.time = "+00:59" args.date = "2020-01-01" args.files = [open("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()