コード例 #1
0
ファイル: test_late.py プロジェクト: himlpplm/late
class TestSmsHandle(unittest.TestCase):
	def setUp(self):
		self.gsm = MyGSM()
		self.sms = MyGSM0705()
		self.daemon = DAEMON(self.gsm)
		
	def test_sms_punch(self):
		where, who, when, what = (1, u'10086', u'2014-10-21 15:10:18+08:00', u'punch,10012345,password')
		cmd_stat = CmdStat('punch')
		cmd_stat.add_cmd_result(u'failed.')
		sms_handle = SmsHandle(self.daemon, self.sms, CmdProc(cmd_stat.cmd))
		sms_handle.execute(where, who, when, what)
		self.daemon.run(1)
		self.assertEqual(u'punch:10012345,password', ';'.join(map(':'.join, cmd_stat.stat)))
		self.assertEqual([1], self.sms.list_delete)
		self.assertEqual(u'10086,punch->failed.', ';'.join(map(','.join, self.sms.list_send)))
コード例 #2
0
ファイル: late.py プロジェクト: himlpplm/late
def start_daemon(dev):
	port = apply(create_port, dev)
	gsm = GSM(port)
	sms = GSM0705(gsm)
	daemon = DAEMON(gsm, [])
	sms_handle = SmsHandle(daemon, sms, CmdProc(CMD))
	daemon.add_event_handle(sms.GSM0705_CMTI_HANDLE(sms_handle.execute))
	daemon.add_command(sms.delete_all, PRIV_M)
	daemon.run()
コード例 #3
0
ファイル: test_daemon.py プロジェクト: himlpplm/late
class TestEngine(unittest.TestCase):
	def setUp(self):
		self.record_event = []
		self.port = MockPort(self)
		self.gsm = GSM(self.port)
		self.daemon = DAEMON(self.gsm, [self.record,])
		
	def record(self, line):
		def execute():
			self.record_event.append(line)
		return [execute,]

	def test_event(self):
		self.port.mock_put_read('+CMTI: "SM",1,"MMS PUSH"\r\n')
		self.port.mock_put_read('')
		self.port.mock_put_read('')
		self.daemon.run(1)
		output = self.record_event
		self.assertEqual(['+CMTI: "SM",1,"MMS PUSH"\r\n',], self.record_event)

	def test_events(self):
		events = [
				'+CMTI: "SM",1,"MMS PUSH"\r\n',
				'+CMTI: "SM",2,"MMS PUSH"\r\n',
				'+CMTI: "SM",3,"MMS PUSH"\r\n']
		for event in events:
			self.port.mock_put_read(event)
			self.port.mock_put_read('')
			self.port.mock_put_read('')
		self.daemon.run(10)
		self.assertEqual(events, self.record_event)

	def test_exception_log(self):
		memory_handler = logging.handlers.MemoryHandler(100)
		log = logging.getLogger('gsm.daemon')
		log.addHandler(memory_handler)
		def div_0():
			1 / 0
		self.daemon.add_command(div_0, 0)
		self.daemon.run(0)
		log.removeHandler(memory_handler)
		log_string = '\n'.join(map(lambda log: '\n'.join(log.getMessage().split('\n')[:2]), memory_handler.buffer))
		self.assertEqual(log_string, 'Execute div_0 error.\nTraceback (most recent call last):')
コード例 #4
0
ファイル: test_daemon.py プロジェクト: himlpplm/late
	def setUp(self):
		self.record_event = []
		self.port = MockPort(self)
		self.gsm = GSM(self.port)
		self.daemon = DAEMON(self.gsm, [self.record,])
コード例 #5
0
ファイル: test_late.py プロジェクト: himlpplm/late
	def setUp(self):
		self.gsm = MyGSM()
		self.sms = MyGSM0705()
		self.daemon = DAEMON(self.gsm)