Пример #1
0
class TestModels(unittest.TestCase):
    def setUp(self):
        User.objects.delete({'email':'*****@*****.**'})
        self.user = User(email='*****@*****.**', password='******')
        self.user.save()

        GPSDevice.objects.delete({'imei':'test'})
        self.device = GPSDevice(imei='test')
        self.device.save()

        self.user.devices.append(self.device)
        self.user.save()

    def tearDown(self):
        self.user.delete()
        self.device.delete()

    # User
    def test_user(self):
        assert(self.user.check_password('test'))

    # GPSDevice
    def test_device_user(self):
        assert(self.user==self.device.user)

    def test_unique_imei(self):
        try:
            d = GPSDevice(imei='test')
            d.save()
        except mongoengine.NotUniqueError, e:
            pass
        assert(mongoengine.NotUniqueError == type(e))
Пример #2
0
    def setUp(self):
        User.objects.delete({'email':'*****@*****.**'})
        self.user = User(email='*****@*****.**', password='******')
        self.user.save()

        GPSDevice.objects.delete({'imei':'test'})
        self.device = GPSDevice(imei='test')
        self.device.save()

        self.user.devices.append(self.device)
        self.user.save()
Пример #3
0
 def test_gpsdevice_sent(self):
     d = GPSDevice.get_by_data(tk102_init_string)
     d.sent(tk102_init_string)
     d.sent(tk102_heartbeat_string)
     d.sent(tk102_location_full_string)
     assert(d.imei)
     assert(d.latitude)
     assert(d.longitude)
Пример #4
0
import time
from models import GPSDevice
from logger import logger


def handle(sock, (clientip, clientport)):
    logger.info('New connection from %s:%s' % (clientip, clientport))
    device = None
    while True:
        data = sock.recv(config.DEVICE_GATEWAY_RECV_SIZE)
        if not data:
            break
        logger.info('%s > %s' % (clientip, data[:256]))
        if not device:
            try:
                device = GPSDevice.get_by_data(data, ipaddr=clientip)
            except Exception, e:
                logger.warning(e.message[:256])
                time.sleep(10)
                sock.close()
                return

        device.sent(data)

        resp = device.pop_response()
        while resp:
            sock.send(resp)
            logger.info('%s < %s' % (clientip, resp[:256]))
            resp = device.pop_response()

Пример #5
0
 def test_device_get_by_data_good(self):
     for s in tk102_datastrings:
         device = GPSDevice.get_by_data(s)
         assert(GPSDevice==type(device))
         assert(unicode==type(device.imei))
Пример #6
0
 def test_device_get_by_data_bad(self):
     e = None
     try:
         device = GPSDevice.get_by_data('x')
     except Exception, e:
         pass
Пример #7
0
 def test_unique_imei(self):
     try:
         d = GPSDevice(imei='test')
         d.save()
     except mongoengine.NotUniqueError, e:
         pass
Пример #8
0
 def test_device_online(self):
     d = GPSDevice()
     assert(False==d.is_online)
Пример #9
0
 def test_gpsdevice_tk102_response_location(self):
     d = GPSDevice.get_by_data(tk102_location_full_string)
     d.sent(tk102_location_full_string)
Пример #10
0
import sys
import time
from models import GPSDevice
from logger import logger

def handle(sock, (clientip, clientport)):
    logger.info('New connection from %s:%s' % (clientip, clientport))
    device = None
    while True:
        data = sock.recv(config.DEVICE_GATEWAY_RECV_SIZE)
        if not data:
            break
        logger.info('%s > %s' % (clientip, data[:256]))
        if not device:
            try:
                device = GPSDevice.get_by_data(data, ipaddr=clientip)
            except Exception, e:
                logger.warning(e.message[:256])
                time.sleep(10)
                sock.close()
                return

        device.sent(data)

        resp = device.pop_response()
        while resp:
            sock.send(resp)
            logger.info('%s < %s' % (clientip, resp[:256]))
            resp = device.pop_response()

if __name__ == '__main__':