def test2_cannot_update_myself_atall(self): req = GET(config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/roles/current") req.authorize(self.session) response, content = req() self.assertEqual(303, response.status) req = GET(config.ui_host, config.ui_port, response.headers["Location"]) req.authorize(self.session) response, content = req() self.assertEqual(200, response.status) result = json.loads(content) self.assertEqual("success", result["status"]) self.assertEqual(200, result["code"]) result = json.loads(content) req = PUT( config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/roles/" + result["data"]["id"]) req.authorize(self.session) req.body(json.dumps({"access_level": "admin"})) response, content = req() self.assertEqual(403, response.status)
def test1_update_non_existing(self): req = PUT(config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/devices/0x413") req.authorize(self.session) req.body(json.dumps({"name": "New device name"})) response, content = req() self.assertEqual(400, response.status)
def activateDevice(self, gwId, deviceId, name): req = PUT("localhost", globalConfig.uiPort, "/gateways/" + str(gwId) + "/devices/" + str(deviceId)) req.authorize(self.session) req.body(json.dumps({ "name": name, })) response, content = req() self.assertEqual(200, response.status)
def test2_update_existing(self): req = PUT( config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/devices/0xa37e0f7f0302324d") req.authorize(self.session) req.body(json.dumps({"name": "New device name"})) response, content = req() self.assertEqual(200, response.status) result = json.loads(content) self.assertEqual("New device name", result["data"].get("name"))
def test3_fail_on_update_read_only_firmware(self): req = PUT( config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/devices/0xa335d00019f5234e/properties/firmware") req.authorize(self.session) req.body(json.dumps({"value": "super firmware"})) response, content = req() self.assertEqual(405, response.status) result = json.loads(content) self.assertEqual("Method Not Allowed", result["status"])
def test2_get_and_update(self): req = GET(config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/locations") req.authorize(self.session) response, content = req() result = json.loads(content) self.assertEqual(200, response.status) location = result["data"][0] req = PUT( config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/locations/" + location["id"]) req.authorize(self.session) req.body(json.dumps({"name": "New location2"})) response, content = req() result = json.loads(content) self.assertEqual(200, response.status) self.assertEqual("New location2", result["data"]["name"])
def test4_http_auth_PUT_404(self): req = PUT(config.ui_host, config.ui_port, "/auth") response, _ = req() self.assertEqual(404, response.status)
def test6_update_non_updatable_refresh(self): req = PUT( config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/devices/0xa335d00019f5234e") req.authorize(self.session) req.body(json.dumps({"refresh_time": 10})) response, content = req() result = json.loads(content) self.assertEqual(400, response.status) self.assertEqual(400, result["code"]) self.assertEqual("invalid input data", result["message"]) # leave it non-updatable should work req = PUT( config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/devices/0xa335d00019f5234e") req.authorize(self.session) req.body(json.dumps({"refresh_time": -1})) response, content = req() result = json.loads(content) self.assertEqual(200, response.status) self.assertEqual("success", result["status"]) self.assertNotIn("refresh_time", result["data"])
def test5_activate_and_unpair(self): req = PUT( config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/devices/0xa371959aad24618e") req.authorize(self.session) req.body(json.dumps({"name": "Activated device"})) response, content = req() result = json.loads(content) self.assertEqual(200, response.status) self.assertTrue("state" in result["data"]) while result["data"]["state"] != "active": req = GET( config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/devices/0xa371959aad24618e") req.authorize(self.session) response, content = req() result = json.loads(content) self.assertEqual(200, response.status) self.assertTrue("active_since" in result["data"]) self.assertEqual("active", result["data"]["state"]) req = DELETE( config.ui_host, config.ui_port, "/gateways/" + config.gateway_id + "/devices/0xa371959aad24618e") req.authorize(self.session) response, content = req() self.assertEqual(202, response.status) data = json.loads(content) self.assertEqual("success", data["status"]) device_uri = response.getheader("Location") for i in range(10): req = GET(config.ui_host, config.ui_port, device_uri) req.authorize(self.session) response, content = req() self.assertEqual(200, response.status) result = json.loads(content) self.assertEqual("success", result["status"]) if result["data"]["state"] == "inactive": break time.sleep(1) req = GET(config.ui_host, config.ui_port, device_uri) req.authorize(self.session) response, content = req() self.assertEqual(200, response.status) result = json.loads(content) self.assertEqual("success", result["status"]) self.assertEqual("inactive", result["data"]["state"])