thousandeyes-sdk-python/thousandeyes-sdk-connectors/test/test_webhook_operations_api_integration.py
Kevin b1faff026e Regenerate integration tests with fixed JSON escaping and enum params.
Success response bodies now use valid JSON quotes instead of HTML entities,
and optional expand enum params are omitted when OpenAPI examples are invalid.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 12:13:24 +01:00

1435 lines
52 KiB
Python

# 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()