示例#1
0
    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 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)
示例#3
0
    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)
示例#4
0
	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)
示例#5
0
    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"])
示例#8
0
 def test4_http_auth_PUT_404(self):
     req = PUT(config.ui_host, config.ui_port, "/auth")
     response, _ = req()
     self.assertEqual(404, response.status)
示例#9
0
    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"])