def test_delete_no_user_id_no_tenant_id_bad_request(self, api_client_int, user_tokens_mt_f): tokens = user_tokens_mt_f for t in tokens: verify_token(api_client_int, t, 200) rsp = requests.delete(api_client_int.make_api_url("/tokens")) assert rsp.status_code == 400
def test_ok(self, api_client_int, clean_db, mongo): tenant_id = str(ObjectId()) _, r = api_client_int.create_tenant(tenant_id) assert r.status_code == 201 deployment_id = "foo" deployment_id = str(uuid4()) device_id = "bar" url = api_client_int.make_api_url( "/tenants/{}/configuration/deployments/{}/devices/{}".format( tenant_id, deployment_id, device_id ) ) configuration_deployment = {"name": "foo", "configuration": '{"foo":"bar"}'} rsp = requests.post(url, json=configuration_deployment, verify=False) assert rsp.status_code == 201 loc = rsp.headers.get("Location", None) assert loc api_deployment_id = os.path.basename(loc) assert api_deployment_id == deployment_id # verify the deployment has been stored correctly in mongodb deployment = mongo[ "deployment_service-{}".format(tenant_id) ].deployments.find_one({"_id": deployment_id}) assert deployment is not None assert deployment["type"] == "configuration" assert deployment["configuration"]
def test_delete_no_tenant_id_bad_request(self, api_client_int, user_tokens_mt_f): tokens = user_tokens_mt_f for t in tokens: verify_token(api_client_int, t, 200) payload = {'user_id': 'foo'} rsp = requests.delete(api_client_int.make_api_url("/tokens"), params=payload) assert rsp.status_code == 400
def test_delete_by_non_existent_tenant_ok(self, api_client_int, user_tokens_mt_f): tokens = user_tokens_mt_f for t in tokens: verify_token(api_client_int, t, 200) payload = {'tenant_id': 'foo'} rsp = requests.delete(api_client_int.make_api_url("/tokens"), params=payload) assert rsp.status_code == 204 verify_tokens(api_client_int, tokens)
def test_delete_by_non_existent_user_ok(self, api_client_int, user_tokens_mt_f): tokens = user_tokens_mt_f for t in tokens: verify_token(api_client_int, t, 200) _, claims, _ = explode_jwt(user_tokens_mt_f[0]) tenant = claims['mender.tenant'] payload = {'user_id': 'foo', 'tenant_id': tenant} rsp = requests.delete(api_client_int.make_api_url("/tokens"), params=payload) assert rsp.status_code == 204 verify_tokens(api_client_int, tokens)
def make_deployment(api_client_int, tenant_id, dep_id, dev_id, deployment): url = api_client_int.make_api_url( "/tenants/{}/configuration/deployments/{}/devices/{}".format( tenant_id, dep_id, dev_id ) ) rsp = requests.post(url, json=deployment, verify=False) assert rsp.status_code == 201 loc = rsp.headers.get("Location", None) assert loc api_deployment_id = os.path.basename(loc) assert api_deployment_id == dep_id return api_deployment_id
def test_delete_by_user_ok(self, api_client_int, user_tokens_mt_f): tokens = user_tokens_mt_f for t in tokens: verify_token(api_client_int, t, 200) _, claims, _ = explode_jwt(user_tokens_mt_f[0]) tenant = claims["mender.tenant"] user = claims["sub"] payload = {"user_id": user, "tenant_id": tenant} rsp = requests.delete(api_client_int.make_api_url("/tokens"), params=payload) assert rsp.status_code == 204 verify_tokens(api_client_int, tokens, tenant, user)
def test_fail_wrong_deployment_id(self, api_client_int, clean_db): tenant_id = str(ObjectId()) _, r = api_client_int.create_tenant(tenant_id) assert r.status_code == 201 deployment_id = "foo" deployment_id = "baz" device_id = "bar" url = api_client_int.make_api_url( "/tenants/{}/configuration/deployments/{}/devices/{}".format( tenant_id, deployment_id, device_id ) ) configuration_deployment = {"name": "foo", "configuration": '{"foo":"bar"}'} rsp = requests.post(url, json=configuration_deployment, verify=False) assert rsp.status_code == 400
def test_fail_duplicate_deployment(self, api_client_int, clean_db): tenant_id = str(ObjectId()) _, r = api_client_int.create_tenant(tenant_id) assert r.status_code == 201 deployment_id = "foo" deployment_id = str(uuid4()) device_id = "bar" url = api_client_int.make_api_url( "/tenants/{}/configuration/deployments/{}/devices/{}".format( tenant_id, deployment_id, device_id ) ) configuration_deployment = {"name": "foo", "configuration": '{"foo":"bar"}'} rsp = requests.post(url, json=configuration_deployment, verify=False) assert rsp.status_code == 201 loc = rsp.headers.get("Location", None) assert loc api_deployment_id = os.path.basename(loc) assert api_deployment_id == deployment_id rsp = requests.post(url, json=configuration_deployment, verify=False) assert rsp.status_code == 409