def test_device_not_found(self): response = self.client.get('/ping', headers={ 'Firmware-Version': '1', 'Device-ID': 'ABC' }) self.assert404(response) device = Device(device_id='ABC', receiver_id='CBA').save() response = self.client.get('/ping', headers={ 'Firmware-Version': '1', 'Device-ID': device.device_id }) self.assert200(response) try: data = json.loads(response.data) self.assertFalse('message' in data) except ValueError: self.assertTrue(False, "The ping request didn't return json") device.messages = [Message(message='This is a test')] device.save() response = self.client.get('/ping', headers={ 'Firmware-Version': '1', 'Device-ID': device.device_id }) self.assert200(response) try: data = json.loads(response.data) self.assertEqual(data['message'], 'This is a test') except ValueError: self.assertTrue(False, "The ping request didn't return json")
def connect_device(): mac = request.form['scanned'] user = current_user # add device into database if not added before if not Device.objects(mac=mac).first(): device = Device(mac=mac, owner=User.objects(email=user.email).first()) device.save() result = app.hub.connectDevice(mac) return json.dumps({'success': result}), 200, { 'ContentType': 'application/json' }
def notice_device_app(dev: Device, pkg, ver): matching_devs = (Device.select().where(Device.serial == dev.serial)) # Device doesn't exist if len(matching_devs) == 0: dev.save() else: print("Updating device with info: ") print(dev) # Device exists match = matching_devs[0] match.imei = dev.imei match.wifi_mac = dev.wifi_mac match.ext_ip = dev.ext_ip match.lan_ip = dev.lan_ip match.last_noticed = datetime.datetime.now() Device.update( imei=dev.imei, wifi_mac=dev.wifi_mac, ext_ip=dev.ext_ip, lan_ip=dev.lan_ip, last_noticed=match.last_noticed).where(id == dev.id).execute() # match.update() dev = match pkgs = Package.select().where(Package.name == pkg) if len(pkgs) == 0: package = Package() package.name = pkg package.version = ver package.save() else: package = pkgs[0] existing_devpacks = DevicePackage.select().where( (DevicePackage.device == dev) & (DevicePackage.package == package)) if len(existing_devpacks) == 0: DevicePackage.create(device=dev, package=package, version=ver) else: for dpk in existing_devpacks: dpk.version = ver DevicePackage.update(version=ver).where(id == dpk.id).execute() return dev