# coding: utf-8 """ Administrative API Manage users, accounts, and account groups in the ThousandEyes platform using the Administrative API. This API provides the following operations to manage your organization: * `/account-groups`: Account groups are used to divide an organization into different sections. These operations can be used to create, retrieve, update and delete account groups. * `/users`: Create, retrieve, update and delete users within an organization. * `/roles`: Create, retrieve and update roles for the current user. * `/permissions`: Retrieve all assignable permissions. Used in the context of modifying roles. * `/audit-user-events`: Retrieve all activity log events. For more information about the administrative models, see [Account Management](https://docs.thousandeyes.com/product-documentation/user-management). Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. """ # noqa: E501 import json import unittest import thousandeyes_sdk.administrative.models from thousandeyes_sdk.core.exceptions import ApiException from thousandeyes_sdk.administrative.api.permissions_api import PermissionsApi from .integration_test_utils import IntegrationTestBase from .test_utils import assert_constructed_model_matches_example_json class TestPermissionsApiIntegration(IntegrationTestBase): """PermissionsApi integration test stubs""" def setUp(self) -> None: super().setUp() self.api = PermissionsApi(self.api_client) def test_get_permissions_happy_path(self) -> None: """Integration test for get_permissions success path""" aid = '1234' response_body_json = """ { "_links" : { "self" : { "hreflang" : "hreflang", "templated" : true, "profile" : "profile", "name" : "name", "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", "type" : "type", "deprecation" : "deprecation", "title" : "title" } }, "permissions" : [ { "label" : "View reports", "permissionId" : "1", "isManagementPermission" : true, "permission" : "REPORT_READ" }, { "label" : "View snapshots", "permissionId" : "51", "isManagementPermission" : false, "permission" : "REPORT_SNAPSHOTS_READ" } ] } """ expected_response = json.loads(response_body_json) response = self.api.get_permissions( aid=aid, _headers=self.te_headers("get_permissions"), ) assert_constructed_model_matches_example_json(response, expected_response) def test_get_permissions_error_400(self) -> None: """Integration test for get_permissions error path (HTTP 400)""" aid = '1234' error_body_json = """ { "instance" : "instance", "detail" : "detail", "type" : "type", "title" : "title", "errors" : [ { "code" : "code", "field" : "field", "message" : "message" }, { "code" : "code", "field" : "field", "message" : "message" } ], "status" : 0 } """ expected_error = json.loads(error_body_json) with self.assertRaises( ApiException.exception_class_for_http_status(400) ) as context: self.api.get_permissions( aid=aid, _headers=self.te_headers("get_permissions", error_status="400"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_permissions_error_401(self) -> None: """Integration test for get_permissions error path (HTTP 401)""" aid = '1234' error_body_json = """ { "error_description" : "Invalid access token", "error" : "invalid_token" } """ expected_error = json.loads(error_body_json) with self.assertRaises( ApiException.exception_class_for_http_status(401) ) as context: self.api.get_permissions( aid=aid, _headers=self.te_headers("get_permissions", error_status="401"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_permissions_error_403(self) -> None: """Integration test for get_permissions error path (HTTP 403)""" aid = '1234' error_body_json = """ { "instance" : "instance", "detail" : "detail", "type" : "type", "title" : "title", "status" : 6 } """ expected_error = json.loads(error_body_json) with self.assertRaises( ApiException.exception_class_for_http_status(403) ) as context: self.api.get_permissions( aid=aid, _headers=self.te_headers("get_permissions", error_status="403"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_permissions_error_404(self) -> None: """Integration test for get_permissions error path (HTTP 404)""" aid = '1234' error_body_json = """ { "instance" : "instance", "detail" : "detail", "type" : "type", "title" : "title", "status" : 6 } """ expected_error = json.loads(error_body_json) with self.assertRaises( ApiException.exception_class_for_http_status(404) ) as context: self.api.get_permissions( aid=aid, _headers=self.te_headers("get_permissions", error_status="404"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_permissions_error_429(self) -> None: """Integration test for get_permissions error path (HTTP 429)""" aid = '1234' error_body_json = """ { "instance" : "instance", "detail" : "detail", "type" : "type", "title" : "title", "status" : 6 } """ expected_error = json.loads(error_body_json) with self.assertRaises( ApiException.exception_class_for_http_status(429) ) as context: self.api.get_permissions( aid=aid, _headers=self.te_headers("get_permissions", error_status="429"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_permissions_error_500(self) -> None: """Integration test for get_permissions error path (HTTP 500)""" aid = '1234' error_body_json = """ { "instance" : "instance", "detail" : "detail", "type" : "type", "title" : "title", "status" : 6 } """ expected_error = json.loads(error_body_json) with self.assertRaises( ApiException.exception_class_for_http_status(500) ) as context: self.api.get_permissions( aid=aid, _headers=self.te_headers("get_permissions", error_status="500"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) if __name__ == '__main__': unittest.main()