thousandeyes-sdk-python/thousandeyes-sdk-dashboards/test/test_dashboard_snapshots_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

2611 lines
103 KiB
Python

# coding: utf-8
"""
Dashboards API
Manage ThousandEyes Dashboards.
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
import json
import unittest
import thousandeyes_sdk.dashboards.models
from thousandeyes_sdk.core.exceptions import ApiException
from thousandeyes_sdk.dashboards.api.dashboard_snapshots_api import DashboardSnapshotsApi
from .integration_test_utils import IntegrationTestBase
from .test_utils import assert_constructed_model_matches_example_json
class TestDashboardSnapshotsApiIntegration(IntegrationTestBase):
"""DashboardSnapshotsApi integration test stubs"""
def setUp(self) -> None:
super().setUp()
self.api = DashboardSnapshotsApi(self.api_client)
def test_create_dashboard_snapshot_happy_path(self) -> None:
"""Integration test for create_dashboard_snapshot success path"""
request_body_json = """
{
"endDate" : "2023-05-16T10:14:28Z",
"dashboardId" : "646f4d2ce3c99b0536c3821e",
"displayName" : "snapshot from API",
"anonymizeData" : true,
"timezone" : "PST",
"startDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16T10:14:28Z"
}
"""
generate_dashboard_snapshot_request = thousandeyes_sdk.dashboards.models.GenerateDashboardSnapshotRequest.from_json(request_body_json)
aid = '1234'
response_body_json = """
{
"snapshotId" : "d28bb71f-5a47-4783-8f12-d4b115e61b0c",
"_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"
}
}
}
"""
expected_response = json.loads(response_body_json)
response = self.api.create_dashboard_snapshot(
generate_dashboard_snapshot_request=generate_dashboard_snapshot_request,
aid=aid,
_headers=self.te_headers("create_dashboard_snapshot"),
)
assert_constructed_model_matches_example_json(response, expected_response)
def test_create_dashboard_snapshot_error_400(self) -> None:
"""Integration test for create_dashboard_snapshot error path (HTTP 400)"""
request_body_json = """
{
"endDate" : "2023-05-16T10:14:28Z",
"dashboardId" : "646f4d2ce3c99b0536c3821e",
"displayName" : "snapshot from API",
"anonymizeData" : true,
"timezone" : "PST",
"startDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16T10:14:28Z"
}
"""
generate_dashboard_snapshot_request = thousandeyes_sdk.dashboards.models.GenerateDashboardSnapshotRequest.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_dashboard_snapshot(
generate_dashboard_snapshot_request=generate_dashboard_snapshot_request,
aid=aid,
_headers=self.te_headers("create_dashboard_snapshot", error_status="400"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_create_dashboard_snapshot_error_401(self) -> None:
"""Integration test for create_dashboard_snapshot error path (HTTP 401)"""
request_body_json = """
{
"endDate" : "2023-05-16T10:14:28Z",
"dashboardId" : "646f4d2ce3c99b0536c3821e",
"displayName" : "snapshot from API",
"anonymizeData" : true,
"timezone" : "PST",
"startDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16T10:14:28Z"
}
"""
generate_dashboard_snapshot_request = thousandeyes_sdk.dashboards.models.GenerateDashboardSnapshotRequest.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_dashboard_snapshot(
generate_dashboard_snapshot_request=generate_dashboard_snapshot_request,
aid=aid,
_headers=self.te_headers("create_dashboard_snapshot", error_status="401"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_create_dashboard_snapshot_error_403(self) -> None:
"""Integration test for create_dashboard_snapshot error path (HTTP 403)"""
request_body_json = """
{
"endDate" : "2023-05-16T10:14:28Z",
"dashboardId" : "646f4d2ce3c99b0536c3821e",
"displayName" : "snapshot from API",
"anonymizeData" : true,
"timezone" : "PST",
"startDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16T10:14:28Z"
}
"""
generate_dashboard_snapshot_request = thousandeyes_sdk.dashboards.models.GenerateDashboardSnapshotRequest.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_dashboard_snapshot(
generate_dashboard_snapshot_request=generate_dashboard_snapshot_request,
aid=aid,
_headers=self.te_headers("create_dashboard_snapshot", error_status="403"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_create_dashboard_snapshot_error_404(self) -> None:
"""Integration test for create_dashboard_snapshot error path (HTTP 404)"""
request_body_json = """
{
"endDate" : "2023-05-16T10:14:28Z",
"dashboardId" : "646f4d2ce3c99b0536c3821e",
"displayName" : "snapshot from API",
"anonymizeData" : true,
"timezone" : "PST",
"startDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16T10:14:28Z"
}
"""
generate_dashboard_snapshot_request = thousandeyes_sdk.dashboards.models.GenerateDashboardSnapshotRequest.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_dashboard_snapshot(
generate_dashboard_snapshot_request=generate_dashboard_snapshot_request,
aid=aid,
_headers=self.te_headers("create_dashboard_snapshot", error_status="404"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_create_dashboard_snapshot_error_500(self) -> None:
"""Integration test for create_dashboard_snapshot error path (HTTP 500)"""
request_body_json = """
{
"endDate" : "2023-05-16T10:14:28Z",
"dashboardId" : "646f4d2ce3c99b0536c3821e",
"displayName" : "snapshot from API",
"anonymizeData" : true,
"timezone" : "PST",
"startDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16T10:14:28Z"
}
"""
generate_dashboard_snapshot_request = thousandeyes_sdk.dashboards.models.GenerateDashboardSnapshotRequest.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_dashboard_snapshot(
generate_dashboard_snapshot_request=generate_dashboard_snapshot_request,
aid=aid,
_headers=self.te_headers("create_dashboard_snapshot", error_status="500"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_delete_dashboard_snapshot_happy_path(self) -> None:
"""Integration test for delete_dashboard_snapshot success path"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
aid = '1234'
response = self.api.delete_dashboard_snapshot_with_http_info(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("delete_dashboard_snapshot"),
)
self.assertEqual(204, response.status_code)
self.assertIsNone(response.data)
def test_delete_dashboard_snapshot_error_400(self) -> None:
"""Integration test for delete_dashboard_snapshot error path (HTTP 400)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("delete_dashboard_snapshot", error_status="400"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_delete_dashboard_snapshot_error_401(self) -> None:
"""Integration test for delete_dashboard_snapshot error path (HTTP 401)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("delete_dashboard_snapshot", error_status="401"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_delete_dashboard_snapshot_error_403(self) -> None:
"""Integration test for delete_dashboard_snapshot error path (HTTP 403)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("delete_dashboard_snapshot", error_status="403"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_delete_dashboard_snapshot_error_404(self) -> None:
"""Integration test for delete_dashboard_snapshot error path (HTTP 404)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("delete_dashboard_snapshot", error_status="404"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_delete_dashboard_snapshot_error_429(self) -> None:
"""Integration test for delete_dashboard_snapshot error path (HTTP 429)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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.delete_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("delete_dashboard_snapshot", error_status="429"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_delete_dashboard_snapshot_error_500(self) -> None:
"""Integration test for delete_dashboard_snapshot error path (HTTP 500)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("delete_dashboard_snapshot", error_status="500"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_happy_path(self) -> None:
"""Integration test for get_dashboard_snapshot success path"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
aid = '1234'
response_body_json = """
{
"snapshotId" : "d28bb71f-5a47-4783-8f12-d4b115e61b0c",
"_links" : {
"appLink" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
},
"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"
}
},
"apiLinks" : [ {
"key" : ""
}, {
"key" : ""
} ],
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"isScheduled" : true,
"widgets" : [ {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
}, {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
} ],
"accountId" : 1234,
"createdDate" : "2023-05-16 10:14:28",
"snapshotName" : "HTTP Server Dashboard Snapshot",
"timeSpan" : {
"duration" : 60,
"start" : "2023-05-16T10:14:28Z",
"startDate" : "2023-05-16 10:14:28"
},
"permalink" : "https://app.thousandeyes.com/dashboard/?snapshotId=d28bb71f-5a47-4783-8f12-d4b115e61b0c",
"aid" : "1234",
"snapshotCreatedDate" : "2023-05-16T10:14:28Z",
"isShared" : true,
"dashboard" : {
"isMigratedReport" : false,
"dashboardCreatedBy" : "1",
"_links" : {
"snapshots" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
},
"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"
}
},
"isDefaultForUser" : true,
"description" : "HTTP Server Widgets",
"isPrivate" : true,
"title" : "HTTP Server Widgets",
"isBuiltIn" : true,
"widgets" : [ {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
}, {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
} ],
"globalFilterId" : "65babd9bb90bf55b17c96c8d",
"modifiedBy" : 1,
"dashboardModifiedBy" : "1",
"migratedReport" : false,
"isDefaultForAccount" : false,
"defaultTimespan" : {
"duration" : 7200,
"timespanDuration" : 7200,
"start" : "2023-05-16T10:14:28Z",
"end" : "2023-05-16T11:14:28Z",
"timespanStart" : "2023-05-16 10:14:28",
"timespanEnd" : "2023-05-16 11:14:28"
},
"layout" : {
"layoutId" : "grid-layout-1",
"type" : "grid",
"details" : {
"widgetPositioning" : [ {
"x" : 0,
"y" : 0,
"w" : 9,
"h" : 5,
"id" : "widgetId-71lbb"
} ]
}
},
"accountId" : 1234,
"apiLink" : [ {
"key" : ""
}, {
"key" : ""
} ],
"dashboardId" : "5e1f7a99143ae6004fdc3bb4",
"createdBy" : 1,
"globalOverride" : true,
"modifiedDate" : "2023-05-16 10:14:28",
"isGlobalOverride" : true,
"aid" : "1234",
"dashboardModifiedDate" : "2023-05-16T10:14:28Z"
},
"expirationDate" : "2023-05-16 10:14:28"
}
"""
expected_response = json.loads(response_body_json)
response = self.api.get_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot"),
)
assert_constructed_model_matches_example_json(response, expected_response)
def test_get_dashboard_snapshot_error_400(self) -> None:
"""Integration test for get_dashboard_snapshot error path (HTTP 400)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot", error_status="400"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_error_401(self) -> None:
"""Integration test for get_dashboard_snapshot error path (HTTP 401)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot", error_status="401"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_error_403(self) -> None:
"""Integration test for get_dashboard_snapshot error path (HTTP 403)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot", error_status="403"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_error_404(self) -> None:
"""Integration test for get_dashboard_snapshot error path (HTTP 404)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot", error_status="404"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_error_429(self) -> None:
"""Integration test for get_dashboard_snapshot error path (HTTP 429)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot", error_status="429"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_error_500(self) -> None:
"""Integration test for get_dashboard_snapshot error path (HTTP 500)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot(
snapshot_id=snapshot_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot", error_status="500"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_widget_data_happy_path(self) -> None:
"""Integration test for get_dashboard_snapshot_widget_data success path"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
widget_id = 'unpmg'
aid = '1234'
response_body_json = """
{
"groupLabels" : [ {
"groupProperty" : "AGENT",
"groupLabels" : [ {
"groupId" : "2565",
"groupLabel" : "San Francisco, CA"
}, {
"groupId" : "2565",
"groupLabel" : "San Francisco, CA"
} ]
}, {
"groupProperty" : "AGENT",
"groupLabels" : [ {
"groupId" : "2565",
"groupLabel" : "San Francisco, CA"
}, {
"groupId" : "2565",
"groupLabel" : "San Francisco, CA"
} ]
} ],
"data" : {
"alerts" : [ {
"alertType" : "network-end-to-end-server",
"durationInSeconds" : 25,
"alertSource" : "Http Test",
"active" : true,
"testId" : "56512",
"startTime" : "2023-06-02T08:54:00Z",
"alertId" : "2004945",
"ruleId" : "281724",
"alertRule" : "Http Test Rule"
}, {
"alertType" : "network-end-to-end-server",
"durationInSeconds" : 25,
"alertSource" : "Http Test",
"active" : true,
"testId" : "56512",
"startTime" : "2023-06-02T08:54:00Z",
"alertId" : "2004945",
"ruleId" : "281724",
"alertRule" : "Http Test Rule"
} ],
"summary" : {
"offline" : 2,
"online" : 10,
"disabled" : 3
},
"totalAlerts" : 500,
"cards" : [ {
"numberOfDataPoints" : 24192,
"cardName" : "Card Name",
"endDate" : "2023-05-16T10:14:28Z",
"_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"
}
},
"cardId" : "lrxxr",
"alertSuppressionWindows" : [ {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
}, {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
} ],
"binSize" : 3600,
"previousValue" : 500,
"value" : 100,
"startDate" : "2023-05-16T10:14:28Z",
"timestamp" : 1567620000,
"status" : "No data"
}, {
"numberOfDataPoints" : 24192,
"cardName" : "Card Name",
"endDate" : "2023-05-16T10:14:28Z",
"_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"
}
},
"cardId" : "lrxxr",
"alertSuppressionWindows" : [ {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
}, {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
} ],
"binSize" : 3600,
"previousValue" : 500,
"value" : 100,
"startDate" : "2023-05-16T10:14:28Z",
"timestamp" : 1567620000,
"status" : "No data"
} ],
"tests" : [ {
"graphlets" : [ {
"metric" : "Availability",
"testId" : "68257",
"points" : [ {
"x" : 1580403900,
"y" : 128.249
}, {
"x" : 1580403900,
"y" : 128.249
} ]
}, {
"metric" : "Availability",
"testId" : "68257",
"points" : [ {
"x" : 1580403900,
"y" : 128.249
}, {
"x" : 1580403900,
"y" : 128.249
} ]
} ],
"alertCount" : 398,
"testType" : "Web - HTTP Server",
"testId" : "68256",
"isShared" : true,
"testName" : "Http Test Name",
"target" : "www.google.com"
}, {
"graphlets" : [ {
"metric" : "Availability",
"testId" : "68257",
"points" : [ {
"x" : 1580403900,
"y" : 128.249
}, {
"x" : 1580403900,
"y" : 128.249
} ]
}, {
"metric" : "Availability",
"testId" : "68257",
"points" : [ {
"x" : 1580403900,
"y" : 128.249
}, {
"x" : 1580403900,
"y" : 128.249
} ]
} ],
"alertCount" : 398,
"testType" : "Web - HTTP Server",
"testId" : "68256",
"isShared" : true,
"testName" : "Http Test Name",
"target" : "www.google.com"
} ],
"columns" : [ {
"_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"
}
},
"columnId" : "938to",
"alertSuppressionWindows" : [ {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
}, {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
} ],
"binSize" : 3600,
"points" : [ {
"numberOfDataPoints" : 23304,
"groups" : [ {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
}, {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
} ],
"value" : 100,
"timestamp" : 1567620000
}, {
"numberOfDataPoints" : 23304,
"groups" : [ {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
}, {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
} ],
"value" : 100,
"timestamp" : 1567620000
} ],
"status" : "No data"
}, {
"_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"
}
},
"columnId" : "938to",
"alertSuppressionWindows" : [ {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
}, {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
} ],
"binSize" : 3600,
"points" : [ {
"numberOfDataPoints" : 23304,
"groups" : [ {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
}, {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
} ],
"value" : 100,
"timestamp" : 1567620000
}, {
"numberOfDataPoints" : 23304,
"groups" : [ {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
}, {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
} ],
"value" : 100,
"timestamp" : 1567620000
} ],
"status" : "No data"
} ],
"alertSuppressionWindows" : [ {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
}, {
"testIds" : [ "281474976710661" ],
"repeatUnit" : "week",
"durationInSeconds" : 7200,
"repeat" : "custom",
"name" : "Test dashboards",
"repeatEvery" : 5,
"id" : "281474976710662",
"startTimes" : [ "2023-05-16T10:14:28Z" ]
} ],
"activeAlerts" : 483,
"startRound" : 1384309800,
"points" : [ {
"numberOfDataPoints" : 23304,
"groups" : [ {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
}, {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
} ],
"value" : 100,
"timestamp" : 1567620000
}, {
"numberOfDataPoints" : 23304,
"groups" : [ {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
}, {
"groupProperty" : "COUNTRY",
"groupValue" : "US"
} ],
"value" : 100,
"timestamp" : 1567620000
} ],
"agents" : [ {
"agentId" : "6522",
"agentName" : "0c3898000117",
"location" : {
"locationName" : "San Francisco, California, US",
"latitude" : 37.77493,
"longitude" : -122.41942
},
"ipInfo" : {
"ipv6" : "ipv6",
"privateIp" : "172.58.92.31",
"operativeSystemVersion" : "operativeSystemVersion",
"publicIp" : "172.58.92.31"
},
"status" : "online"
}, {
"agentId" : "6522",
"agentName" : "0c3898000117",
"location" : {
"locationName" : "San Francisco, California, US",
"latitude" : 37.77493,
"longitude" : -122.41942
},
"ipInfo" : {
"ipv6" : "ipv6",
"privateIp" : "172.58.92.31",
"operativeSystemVersion" : "operativeSystemVersion",
"publicIp" : "172.58.92.31"
},
"status" : "online"
} ],
"status" : "No data"
},
"endDate" : "2022-07-18T22:00:54Z",
"_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"
}
},
"binSize" : 3600,
"startDate" : "2022-07-17T22:00:54Z"
}
"""
expected_response = json.loads(response_body_json)
response = self.api.get_dashboard_snapshot_widget_data(
snapshot_id=snapshot_id,
widget_id=widget_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot_widget_data"),
)
assert_constructed_model_matches_example_json(response, expected_response)
def test_get_dashboard_snapshot_widget_data_error_400(self) -> None:
"""Integration test for get_dashboard_snapshot_widget_data error path (HTTP 400)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
widget_id = 'unpmg'
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_dashboard_snapshot_widget_data(
snapshot_id=snapshot_id,
widget_id=widget_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot_widget_data", error_status="400"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_widget_data_error_401(self) -> None:
"""Integration test for get_dashboard_snapshot_widget_data error path (HTTP 401)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
widget_id = 'unpmg'
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_dashboard_snapshot_widget_data(
snapshot_id=snapshot_id,
widget_id=widget_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot_widget_data", error_status="401"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_widget_data_error_403(self) -> None:
"""Integration test for get_dashboard_snapshot_widget_data error path (HTTP 403)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
widget_id = 'unpmg'
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_dashboard_snapshot_widget_data(
snapshot_id=snapshot_id,
widget_id=widget_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot_widget_data", error_status="403"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_widget_data_error_404(self) -> None:
"""Integration test for get_dashboard_snapshot_widget_data error path (HTTP 404)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
widget_id = 'unpmg'
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_dashboard_snapshot_widget_data(
snapshot_id=snapshot_id,
widget_id=widget_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot_widget_data", error_status="404"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_widget_data_error_429(self) -> None:
"""Integration test for get_dashboard_snapshot_widget_data error path (HTTP 429)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
widget_id = 'unpmg'
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_dashboard_snapshot_widget_data(
snapshot_id=snapshot_id,
widget_id=widget_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot_widget_data", error_status="429"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshot_widget_data_error_500(self) -> None:
"""Integration test for get_dashboard_snapshot_widget_data error path (HTTP 500)"""
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
widget_id = 'unpmg'
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_dashboard_snapshot_widget_data(
snapshot_id=snapshot_id,
widget_id=widget_id,
aid=aid,
_headers=self.te_headers("get_dashboard_snapshot_widget_data", error_status="500"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshots_happy_path(self) -> None:
"""Integration test for get_dashboard_snapshots success path"""
aid = '1234'
dashboard_id = '646f4d2ce3c99b0536c3821e'
cursor = 'cursor_example'
response_body_json = """
{
"pages" : {
"key" : ""
},
"_links" : {
"next" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
},
"previous" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
},
"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"
}
},
"dashboardSnapshots" : [ {
"snapshotId" : "d28bb71f-5a47-4783-8f12-d4b115e61b0c",
"_links" : {
"appLink" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
},
"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"
}
},
"apiLinks" : [ {
"key" : ""
}, {
"key" : ""
} ],
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"isScheduled" : true,
"widgets" : [ {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
}, {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
} ],
"accountId" : 1234,
"createdDate" : "2023-05-16 10:14:28",
"snapshotName" : "HTTP Server Dashboard Snapshot",
"timeSpan" : {
"duration" : 60,
"start" : "2023-05-16T10:14:28Z",
"startDate" : "2023-05-16 10:14:28"
},
"permalink" : "https://app.thousandeyes.com/dashboard/?snapshotId=d28bb71f-5a47-4783-8f12-d4b115e61b0c",
"aid" : "1234",
"snapshotCreatedDate" : "2023-05-16T10:14:28Z",
"isShared" : true,
"dashboard" : {
"isMigratedReport" : false,
"dashboardCreatedBy" : "1",
"_links" : {
"snapshots" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
},
"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"
}
},
"isDefaultForUser" : true,
"description" : "HTTP Server Widgets",
"isPrivate" : true,
"title" : "HTTP Server Widgets",
"isBuiltIn" : true,
"widgets" : [ {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
}, {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
} ],
"globalFilterId" : "65babd9bb90bf55b17c96c8d",
"modifiedBy" : 1,
"dashboardModifiedBy" : "1",
"migratedReport" : false,
"isDefaultForAccount" : false,
"defaultTimespan" : {
"duration" : 7200,
"timespanDuration" : 7200,
"start" : "2023-05-16T10:14:28Z",
"end" : "2023-05-16T11:14:28Z",
"timespanStart" : "2023-05-16 10:14:28",
"timespanEnd" : "2023-05-16 11:14:28"
},
"layout" : {
"layoutId" : "grid-layout-1",
"type" : "grid",
"details" : {
"widgetPositioning" : [ {
"x" : 0,
"y" : 0,
"w" : 9,
"h" : 5,
"id" : "widgetId-71lbb"
} ]
}
},
"accountId" : 1234,
"apiLink" : [ {
"key" : ""
}, {
"key" : ""
} ],
"dashboardId" : "5e1f7a99143ae6004fdc3bb4",
"createdBy" : 1,
"globalOverride" : true,
"modifiedDate" : "2023-05-16 10:14:28",
"isGlobalOverride" : true,
"aid" : "1234",
"dashboardModifiedDate" : "2023-05-16T10:14:28Z"
},
"expirationDate" : "2023-05-16 10:14:28"
}, {
"snapshotId" : "d28bb71f-5a47-4783-8f12-d4b115e61b0c",
"_links" : {
"appLink" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
},
"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"
}
},
"apiLinks" : [ {
"key" : ""
}, {
"key" : ""
} ],
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"isScheduled" : true,
"widgets" : [ {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
}, {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
} ],
"accountId" : 1234,
"createdDate" : "2023-05-16 10:14:28",
"snapshotName" : "HTTP Server Dashboard Snapshot",
"timeSpan" : {
"duration" : 60,
"start" : "2023-05-16T10:14:28Z",
"startDate" : "2023-05-16 10:14:28"
},
"permalink" : "https://app.thousandeyes.com/dashboard/?snapshotId=d28bb71f-5a47-4783-8f12-d4b115e61b0c",
"aid" : "1234",
"snapshotCreatedDate" : "2023-05-16T10:14:28Z",
"isShared" : true,
"dashboard" : {
"isMigratedReport" : false,
"dashboardCreatedBy" : "1",
"_links" : {
"snapshots" : {
"hreflang" : "hreflang",
"templated" : true,
"profile" : "profile",
"name" : "name",
"href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
"type" : "type",
"deprecation" : "deprecation",
"title" : "title"
},
"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"
}
},
"isDefaultForUser" : true,
"description" : "HTTP Server Widgets",
"isPrivate" : true,
"title" : "HTTP Server Widgets",
"isBuiltIn" : true,
"widgets" : [ {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
}, {
"embedUrl" : "https://embed.thousandeyes.com/e/00aa:3039802d-5c76-42d2-9a93-c6e5f9d3122f",
"shouldExcludeAlertSuppressionWindows" : true,
"_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"
}
},
"visualMode" : "Full",
"filters" : {
"TEST" : [ 5187, 5227 ],
"ENDPOINT_MACHINE_ID" : [ "fbd0050c-07f7-43f7-9631-14b32f096962" ]
},
"title" : "Widget Title",
"type" : "Agent Status",
"metricGroup" : "BGP",
"measure" : {
"percentileValue" : 95,
"type" : "MEAN"
},
"apiLink" : "apiLink",
"metric" : "ENDPOINT_GATEWAY_CPU_LOAD_PERCENT",
"isEmbedded" : true,
"id" : "1234",
"fixedTimespan" : {
"unit" : "Days",
"value" : 10
},
"dataSource" : "ENDPOINT_AGENTS",
"direction" : "FROM_TARGET"
} ],
"globalFilterId" : "65babd9bb90bf55b17c96c8d",
"modifiedBy" : 1,
"dashboardModifiedBy" : "1",
"migratedReport" : false,
"isDefaultForAccount" : false,
"defaultTimespan" : {
"duration" : 7200,
"timespanDuration" : 7200,
"start" : "2023-05-16T10:14:28Z",
"end" : "2023-05-16T11:14:28Z",
"timespanStart" : "2023-05-16 10:14:28",
"timespanEnd" : "2023-05-16 11:14:28"
},
"layout" : {
"layoutId" : "grid-layout-1",
"type" : "grid",
"details" : {
"widgetPositioning" : [ {
"x" : 0,
"y" : 0,
"w" : 9,
"h" : 5,
"id" : "widgetId-71lbb"
} ]
}
},
"accountId" : 1234,
"apiLink" : [ {
"key" : ""
}, {
"key" : ""
} ],
"dashboardId" : "5e1f7a99143ae6004fdc3bb4",
"createdBy" : 1,
"globalOverride" : true,
"modifiedDate" : "2023-05-16 10:14:28",
"isGlobalOverride" : true,
"aid" : "1234",
"dashboardModifiedDate" : "2023-05-16T10:14:28Z"
},
"expirationDate" : "2023-05-16 10:14:28"
} ]
}
"""
expected_response = json.loads(response_body_json)
response = self.api.get_dashboard_snapshots(
aid=aid,
dashboard_id=dashboard_id,
cursor=cursor,
_headers=self.te_headers("get_dashboard_snapshots"),
)
assert_constructed_model_matches_example_json(response, expected_response)
def test_get_dashboard_snapshots_error_400(self) -> None:
"""Integration test for get_dashboard_snapshots error path (HTTP 400)"""
aid = '1234'
dashboard_id = '646f4d2ce3c99b0536c3821e'
cursor = 'cursor_example'
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_dashboard_snapshots(
aid=aid,
dashboard_id=dashboard_id,
cursor=cursor,
_headers=self.te_headers("get_dashboard_snapshots", error_status="400"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshots_error_401(self) -> None:
"""Integration test for get_dashboard_snapshots error path (HTTP 401)"""
aid = '1234'
dashboard_id = '646f4d2ce3c99b0536c3821e'
cursor = 'cursor_example'
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_dashboard_snapshots(
aid=aid,
dashboard_id=dashboard_id,
cursor=cursor,
_headers=self.te_headers("get_dashboard_snapshots", error_status="401"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshots_error_403(self) -> None:
"""Integration test for get_dashboard_snapshots error path (HTTP 403)"""
aid = '1234'
dashboard_id = '646f4d2ce3c99b0536c3821e'
cursor = 'cursor_example'
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_dashboard_snapshots(
aid=aid,
dashboard_id=dashboard_id,
cursor=cursor,
_headers=self.te_headers("get_dashboard_snapshots", error_status="403"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshots_error_404(self) -> None:
"""Integration test for get_dashboard_snapshots error path (HTTP 404)"""
aid = '1234'
dashboard_id = '646f4d2ce3c99b0536c3821e'
cursor = 'cursor_example'
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_dashboard_snapshots(
aid=aid,
dashboard_id=dashboard_id,
cursor=cursor,
_headers=self.te_headers("get_dashboard_snapshots", error_status="404"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshots_error_429(self) -> None:
"""Integration test for get_dashboard_snapshots error path (HTTP 429)"""
aid = '1234'
dashboard_id = '646f4d2ce3c99b0536c3821e'
cursor = 'cursor_example'
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_dashboard_snapshots(
aid=aid,
dashboard_id=dashboard_id,
cursor=cursor,
_headers=self.te_headers("get_dashboard_snapshots", error_status="429"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_get_dashboard_snapshots_error_500(self) -> None:
"""Integration test for get_dashboard_snapshots error path (HTTP 500)"""
aid = '1234'
dashboard_id = '646f4d2ce3c99b0536c3821e'
cursor = 'cursor_example'
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_dashboard_snapshots(
aid=aid,
dashboard_id=dashboard_id,
cursor=cursor,
_headers=self.te_headers("get_dashboard_snapshots", error_status="500"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_update_dashboard_snapshot_expiration_date_happy_path(self) -> None:
"""Integration test for update_dashboard_snapshot_expiration_date success path"""
request_body_json = """
{
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16 10:14:28"
}
"""
update_snapshot_expiration_date_api_request = thousandeyes_sdk.dashboards.models.UpdateSnapshotExpirationDateApiRequest.from_json(request_body_json)
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
aid = '1234'
response = self.api.update_dashboard_snapshot_expiration_date_with_http_info(
snapshot_id=snapshot_id,
update_snapshot_expiration_date_api_request=update_snapshot_expiration_date_api_request,
aid=aid,
_headers=self.te_headers("update_dashboard_snapshot_expiration_date"),
)
self.assertEqual(204, response.status_code)
self.assertIsNone(response.data)
def test_update_dashboard_snapshot_expiration_date_error_400(self) -> None:
"""Integration test for update_dashboard_snapshot_expiration_date error path (HTTP 400)"""
request_body_json = """
{
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16 10:14:28"
}
"""
update_snapshot_expiration_date_api_request = thousandeyes_sdk.dashboards.models.UpdateSnapshotExpirationDateApiRequest.from_json(request_body_json)
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot_expiration_date(
snapshot_id=snapshot_id,
update_snapshot_expiration_date_api_request=update_snapshot_expiration_date_api_request,
aid=aid,
_headers=self.te_headers("update_dashboard_snapshot_expiration_date", error_status="400"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_update_dashboard_snapshot_expiration_date_error_401(self) -> None:
"""Integration test for update_dashboard_snapshot_expiration_date error path (HTTP 401)"""
request_body_json = """
{
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16 10:14:28"
}
"""
update_snapshot_expiration_date_api_request = thousandeyes_sdk.dashboards.models.UpdateSnapshotExpirationDateApiRequest.from_json(request_body_json)
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot_expiration_date(
snapshot_id=snapshot_id,
update_snapshot_expiration_date_api_request=update_snapshot_expiration_date_api_request,
aid=aid,
_headers=self.te_headers("update_dashboard_snapshot_expiration_date", error_status="401"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_update_dashboard_snapshot_expiration_date_error_403(self) -> None:
"""Integration test for update_dashboard_snapshot_expiration_date error path (HTTP 403)"""
request_body_json = """
{
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16 10:14:28"
}
"""
update_snapshot_expiration_date_api_request = thousandeyes_sdk.dashboards.models.UpdateSnapshotExpirationDateApiRequest.from_json(request_body_json)
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot_expiration_date(
snapshot_id=snapshot_id,
update_snapshot_expiration_date_api_request=update_snapshot_expiration_date_api_request,
aid=aid,
_headers=self.te_headers("update_dashboard_snapshot_expiration_date", error_status="403"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_update_dashboard_snapshot_expiration_date_error_404(self) -> None:
"""Integration test for update_dashboard_snapshot_expiration_date error path (HTTP 404)"""
request_body_json = """
{
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16 10:14:28"
}
"""
update_snapshot_expiration_date_api_request = thousandeyes_sdk.dashboards.models.UpdateSnapshotExpirationDateApiRequest.from_json(request_body_json)
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot_expiration_date(
snapshot_id=snapshot_id,
update_snapshot_expiration_date_api_request=update_snapshot_expiration_date_api_request,
aid=aid,
_headers=self.te_headers("update_dashboard_snapshot_expiration_date", error_status="404"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_update_dashboard_snapshot_expiration_date_error_429(self) -> None:
"""Integration test for update_dashboard_snapshot_expiration_date error path (HTTP 429)"""
request_body_json = """
{
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16 10:14:28"
}
"""
update_snapshot_expiration_date_api_request = thousandeyes_sdk.dashboards.models.UpdateSnapshotExpirationDateApiRequest.from_json(request_body_json)
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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.update_dashboard_snapshot_expiration_date(
snapshot_id=snapshot_id,
update_snapshot_expiration_date_api_request=update_snapshot_expiration_date_api_request,
aid=aid,
_headers=self.te_headers("update_dashboard_snapshot_expiration_date", error_status="429"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
def test_update_dashboard_snapshot_expiration_date_error_500(self) -> None:
"""Integration test for update_dashboard_snapshot_expiration_date error path (HTTP 500)"""
request_body_json = """
{
"snapshotExpirationDate" : "2023-05-16T10:14:28Z",
"expirationDate" : "2023-05-16 10:14:28"
}
"""
update_snapshot_expiration_date_api_request = thousandeyes_sdk.dashboards.models.UpdateSnapshotExpirationDateApiRequest.from_json(request_body_json)
snapshot_id = 'd28bb71f-5a47-4783-8f12-d4b115e61b0c'
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_dashboard_snapshot_expiration_date(
snapshot_id=snapshot_id,
update_snapshot_expiration_date_api_request=update_snapshot_expiration_date_api_request,
aid=aid,
_headers=self.te_headers("update_dashboard_snapshot_expiration_date", error_status="500"),
)
assert_constructed_model_matches_example_json(context.exception.data, expected_error)
if __name__ == '__main__':
unittest.main()