# coding: utf-8 """ Integrations API **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. """ # noqa: E501 import json import unittest import thousandeyes_sdk.connectors.models from thousandeyes_sdk.core.exceptions import ApiException from thousandeyes_sdk.connectors.api.webhook_operations_api import WebhookOperationsApi from .integration_test_utils import IntegrationTestBase from .test_utils import assert_constructed_model_matches_example_json class TestWebhookOperationsApiIntegration(IntegrationTestBase): """WebhookOperationsApi integration test stubs""" def setUp(self) -> None: super().setUp() self.api = WebhookOperationsApi(self.api_client) def test_create_webhook_operation_happy_path(self) -> None: """Integration test for create_webhook_operation success path""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) aid = '1234' response_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ expected_response = json.loads(response_body_json) response = self.api.create_webhook_operation( webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("create_webhook_operation"), ) assert_constructed_model_matches_example_json(response, expected_response) def test_create_webhook_operation_error_400(self) -> None: """Integration test for create_webhook_operation error path (HTTP 400)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) 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.create_webhook_operation( webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("create_webhook_operation", error_status="400"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_webhook_operation_error_401(self) -> None: """Integration test for create_webhook_operation error path (HTTP 401)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) 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.create_webhook_operation( webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("create_webhook_operation", error_status="401"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_webhook_operation_error_403(self) -> None: """Integration test for create_webhook_operation error path (HTTP 403)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) 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.create_webhook_operation( webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("create_webhook_operation", error_status="403"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_webhook_operation_error_404(self) -> None: """Integration test for create_webhook_operation error path (HTTP 404)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) 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.create_webhook_operation( webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("create_webhook_operation", error_status="404"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_webhook_operation_error_500(self) -> None: """Integration test for create_webhook_operation error path (HTTP 500)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) 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.create_webhook_operation( webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("create_webhook_operation", error_status="500"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_delete_webhook_operation_happy_path(self) -> None: """Integration test for delete_webhook_operation success path""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' aid = '1234' response = self.api.delete_webhook_operation_with_http_info( id=id, aid=aid, _headers=self.te_headers("delete_webhook_operation"), ) self.assertEqual(204, response.status_code) self.assertIsNone(response.data) def test_delete_webhook_operation_error_400(self) -> None: """Integration test for delete_webhook_operation error path (HTTP 400)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.delete_webhook_operation( id=id, aid=aid, _headers=self.te_headers("delete_webhook_operation", error_status="400"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_delete_webhook_operation_error_401(self) -> None: """Integration test for delete_webhook_operation error path (HTTP 401)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.delete_webhook_operation( id=id, aid=aid, _headers=self.te_headers("delete_webhook_operation", error_status="401"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_delete_webhook_operation_error_403(self) -> None: """Integration test for delete_webhook_operation error path (HTTP 403)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.delete_webhook_operation( id=id, aid=aid, _headers=self.te_headers("delete_webhook_operation", error_status="403"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_delete_webhook_operation_error_404(self) -> None: """Integration test for delete_webhook_operation error path (HTTP 404)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.delete_webhook_operation( id=id, aid=aid, _headers=self.te_headers("delete_webhook_operation", error_status="404"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_delete_webhook_operation_error_500(self) -> None: """Integration test for delete_webhook_operation error path (HTTP 500)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.delete_webhook_operation( id=id, aid=aid, _headers=self.te_headers("delete_webhook_operation", error_status="500"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operation_happy_path(self) -> None: """Integration test for get_webhook_operation success path""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' aid = '1234' response_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ expected_response = json.loads(response_body_json) response = self.api.get_webhook_operation( id=id, aid=aid, _headers=self.te_headers("get_webhook_operation"), ) assert_constructed_model_matches_example_json(response, expected_response) def test_get_webhook_operation_error_400(self) -> None: """Integration test for get_webhook_operation error path (HTTP 400)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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_webhook_operation( id=id, aid=aid, _headers=self.te_headers("get_webhook_operation", error_status="400"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operation_error_401(self) -> None: """Integration test for get_webhook_operation error path (HTTP 401)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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_webhook_operation( id=id, aid=aid, _headers=self.te_headers("get_webhook_operation", error_status="401"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operation_error_403(self) -> None: """Integration test for get_webhook_operation error path (HTTP 403)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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_webhook_operation( id=id, aid=aid, _headers=self.te_headers("get_webhook_operation", error_status="403"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operation_error_404(self) -> None: """Integration test for get_webhook_operation error path (HTTP 404)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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_webhook_operation( id=id, aid=aid, _headers=self.te_headers("get_webhook_operation", error_status="404"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operation_error_500(self) -> None: """Integration test for get_webhook_operation error path (HTTP 500)""" id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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_webhook_operation( id=id, aid=aid, _headers=self.te_headers("get_webhook_operation", error_status="500"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operations_happy_path(self) -> None: """Integration test for get_webhook_operations 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" } }, "items" : [ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" }, { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } ] } """ expected_response = json.loads(response_body_json) response = self.api.get_webhook_operations( aid=aid, _headers=self.te_headers("get_webhook_operations"), ) assert_constructed_model_matches_example_json(response, expected_response) def test_get_webhook_operations_error_400(self) -> None: """Integration test for get_webhook_operations 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_webhook_operations( aid=aid, _headers=self.te_headers("get_webhook_operations", error_status="400"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operations_error_401(self) -> None: """Integration test for get_webhook_operations 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_webhook_operations( aid=aid, _headers=self.te_headers("get_webhook_operations", error_status="401"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operations_error_403(self) -> None: """Integration test for get_webhook_operations 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_webhook_operations( aid=aid, _headers=self.te_headers("get_webhook_operations", error_status="403"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operations_error_404(self) -> None: """Integration test for get_webhook_operations 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_webhook_operations( aid=aid, _headers=self.te_headers("get_webhook_operations", error_status="404"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_get_webhook_operations_error_500(self) -> None: """Integration test for get_webhook_operations 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_webhook_operations( aid=aid, _headers=self.te_headers("get_webhook_operations", error_status="500"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_update_webhook_operation_happy_path(self) -> None: """Integration test for update_webhook_operation success path""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' aid = '1234' response_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ expected_response = json.loads(response_body_json) response = self.api.update_webhook_operation( id=id, webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("update_webhook_operation"), ) assert_constructed_model_matches_example_json(response, expected_response) def test_update_webhook_operation_error_400(self) -> None: """Integration test for update_webhook_operation error path (HTTP 400)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.update_webhook_operation( id=id, webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("update_webhook_operation", error_status="400"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_update_webhook_operation_error_401(self) -> None: """Integration test for update_webhook_operation error path (HTTP 401)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.update_webhook_operation( id=id, webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("update_webhook_operation", error_status="401"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_update_webhook_operation_error_403(self) -> None: """Integration test for update_webhook_operation error path (HTTP 403)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.update_webhook_operation( id=id, webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("update_webhook_operation", error_status="403"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_update_webhook_operation_error_404(self) -> None: """Integration test for update_webhook_operation error path (HTTP 404)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.update_webhook_operation( id=id, webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("update_webhook_operation", error_status="404"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_update_webhook_operation_error_500(self) -> None: """Integration test for update_webhook_operation error path (HTTP 500)""" request_body_json = """ { "path" : "/custom/path", "headers" : [ { "name" : "Content-Type", "value" : "application/json" }, { "name" : "Content-Type", "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", "_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" } }, "name" : "My operation", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "category" : "alerts", "type" : "webhook", "enabled" : true, "status" : "pending" } """ webhook_operation = thousandeyes_sdk.connectors.models.WebhookOperation.from_json(request_body_json) id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' 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.update_webhook_operation( id=id, webhook_operation=webhook_operation, aid=aid, _headers=self.te_headers("update_webhook_operation", error_status="500"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) if __name__ == '__main__': unittest.main()