def sendText(self,text='default log message',deviceId='unitTestDevice',inThread=False): logs.objects().delete() Device.objects().delete() self.logClient.deviceId=deviceId self.assertTrue(self.logClient.sendText(text)) lastTime=time.time() res=None while not res: if time.time()-lastTime>2: break time.sleep(0.01) res=Device.objects() # print 'res',res self.assertEqual(len(res),1) self.assertEqual(res[0].deviceId.encode('utf8','ignore'),deviceId) res=logs.objects() # print 'res',res self.assertEqual(len(res),1) self.assertEqual(res[0].deviceId.encode('utf8','ignore'),deviceId) self.assertEqual(res[0].data.encode('utf8','ignore'),text)
def dataReceived(self, data): # print 'recv',data self.fulldata+=data #~ if self.logProtocol.parsePacket(self.fulldata): try: if self.logProtocol.validatePacket(self.fulldata): #~ print 'parse ok' self.logProtocol.parsePacket(self.fulldata) if self.logProtocol.cmd==LogProtocolCmds['SendText']: parser=RecordParser(self.logProtocol.packetData) text=parser.getVarcharUtf2() print 'recv text',text #~ l=logs(deviceId=self.logProtocol.deviceId.decode('utf8','ignore').encode('ascii','ignore'),data=text.decode('utf8','ignore').encode('ascii','ignore'),time=int(time.time())) #~ l=logs(deviceId=unicode(self.logProtocol.deviceId),data=unicode(text),time=int(time.time())) l=logs(deviceId=self.logProtocol.deviceId.decode('utf8','ignore'),data=text.decode('utf8','ignore'),time=int(time.time())) l.save() currentTime=int(time.time()) try: #~ d=Device.objects.get(deviceId=self.logProtocol.deviceId) #~ d=Device.objects.get(deviceId=unicode(self.logProtocol.deviceId)) d=Device.objects.get(deviceId=self.logProtocol.deviceId.decode('utf8','ignore')) #~ d.update(lastActivityTime=currentTime) d.lastActivityTime=currentTime d.ipAddress=self.transport.client[0] d.save() except DoesNotExist: #~ d=Device(deviceId=self.logProtocol.deviceId,ipAddress=self.transport.client[0],lastActivityTime=currentTime) #~ d=Device(deviceId=unicode(self.logProtocol.deviceId),ipAddress=self.transport.client[0],lastActivityTime=currentTime) print 'add new deviceId',self.logProtocol.deviceId d=Device(deviceId=self.logProtocol.deviceId.decode('utf8','ignore'),ipAddress=self.transport.client[0],lastActivityTime=currentTime) d.save() res=self.logProtocol.sendAck() self.transport.write(res) self.fulldata='' self.transport.loseConnection( ) except: print traceback.format_exc() pass
def test_addDevice(self,text='default test string'): Device.objects().delete() testTime=int(time.time()) l=Device(deviceId=text.decode('utf8','ignore')) l.save() res=Device.objects().get(deviceId=text) self.assertEqual(res.deviceId.encode('utf8','ignore'),text)