Ejemplo n.º 1
0
    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"]
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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
Ejemplo n.º 7
0
    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