# coding: utf-8 """ Test Snapshots API Creates a new test snapshot in ThousandEyes. Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. """ # noqa: E501 import json import unittest import thousandeyes_sdk.snapshots.models from thousandeyes_sdk.core.exceptions import ApiException from thousandeyes_sdk.snapshots.api.test_snapshots_api import TestSnapshotsApi from .integration_test_utils import IntegrationTestBase from .test_utils import assert_constructed_model_matches_example_json class TestTestSnapshotsApiIntegration(IntegrationTestBase): """TestSnapshotsApi integration test stubs""" def setUp(self) -> None: super().setUp() self.api = TestSnapshotsApi(self.api_client) def test_create_test_snapshot_happy_path(self) -> None: """Integration test for create_test_snapshot success path""" request_body_json = """ { "endDate" : "2023-06-06T01:00:00Z", "displayName" : "Snapshot created through API", "isPublic" : false, "startDate" : "2023-06-06T00:00:00Z" } """ snapshot_request = thousandeyes_sdk.snapshots.models.SnapshotRequest.from_json(request_body_json) test_id = '202701' aid = '1234' response_body_json = """ { "shareDate" : "2023-06-06T00:00:00Z", "uid" : "281474976810911", "test" : { "_links" : { "testResults" : [ { "href" : "https://api.thousandeyes.com/v7/test-results/281474976710706/network" }, { "href" : "https://api.thousandeyes.com/v7/test-results/281474976710706/path-vis" } ], "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" } }, "liveShare" : false, "savedEvent" : true, "description" : "ThousandEyes Test", "type" : "agent-to-server", "enabled" : true, "createdDate" : "2022-07-17T22:00:54Z", "createdBy" : "user@user.com", "modifiedDate" : "2022-07-17T22:00:54Z", "interval" : 60, "modifiedBy" : "user@user.com", "testId" : "281474976710706", "alertsEnabled" : true, "testName" : "ThousandEyes Test" }, "_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" } }, "startRoundId" : 1538784000, "displayName" : "Snapshot created through API", "endRoundId" : 1538787600, "testId" : "281474976710801", "extraParams" : "params", "id" : "wdiac", "roundId" : 1538784000, "sourceTestId" : "281474976710706" } """ expected_response = json.loads(response_body_json) response = self.api.create_test_snapshot( test_id=test_id, snapshot_request=snapshot_request, aid=aid, _headers=self.te_headers("create_test_snapshot"), ) assert_constructed_model_matches_example_json(response, expected_response) def test_create_test_snapshot_error_400(self) -> None: """Integration test for create_test_snapshot error path (HTTP 400)""" request_body_json = """ { "endDate" : "2023-06-06T01:00:00Z", "displayName" : "Snapshot created through API", "isPublic" : false, "startDate" : "2023-06-06T00:00:00Z" } """ snapshot_request = thousandeyes_sdk.snapshots.models.SnapshotRequest.from_json(request_body_json) test_id = '202701' 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_test_snapshot( test_id=test_id, snapshot_request=snapshot_request, aid=aid, _headers=self.te_headers("create_test_snapshot", error_status="400"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_test_snapshot_error_401(self) -> None: """Integration test for create_test_snapshot error path (HTTP 401)""" request_body_json = """ { "endDate" : "2023-06-06T01:00:00Z", "displayName" : "Snapshot created through API", "isPublic" : false, "startDate" : "2023-06-06T00:00:00Z" } """ snapshot_request = thousandeyes_sdk.snapshots.models.SnapshotRequest.from_json(request_body_json) test_id = '202701' 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_test_snapshot( test_id=test_id, snapshot_request=snapshot_request, aid=aid, _headers=self.te_headers("create_test_snapshot", error_status="401"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_test_snapshot_error_403(self) -> None: """Integration test for create_test_snapshot error path (HTTP 403)""" request_body_json = """ { "endDate" : "2023-06-06T01:00:00Z", "displayName" : "Snapshot created through API", "isPublic" : false, "startDate" : "2023-06-06T00:00:00Z" } """ snapshot_request = thousandeyes_sdk.snapshots.models.SnapshotRequest.from_json(request_body_json) test_id = '202701' 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_test_snapshot( test_id=test_id, snapshot_request=snapshot_request, aid=aid, _headers=self.te_headers("create_test_snapshot", error_status="403"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_test_snapshot_error_404(self) -> None: """Integration test for create_test_snapshot error path (HTTP 404)""" request_body_json = """ { "endDate" : "2023-06-06T01:00:00Z", "displayName" : "Snapshot created through API", "isPublic" : false, "startDate" : "2023-06-06T00:00:00Z" } """ snapshot_request = thousandeyes_sdk.snapshots.models.SnapshotRequest.from_json(request_body_json) test_id = '202701' 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_test_snapshot( test_id=test_id, snapshot_request=snapshot_request, aid=aid, _headers=self.te_headers("create_test_snapshot", error_status="404"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_test_snapshot_error_429(self) -> None: """Integration test for create_test_snapshot error path (HTTP 429)""" request_body_json = """ { "endDate" : "2023-06-06T01:00:00Z", "displayName" : "Snapshot created through API", "isPublic" : false, "startDate" : "2023-06-06T00:00:00Z" } """ snapshot_request = thousandeyes_sdk.snapshots.models.SnapshotRequest.from_json(request_body_json) test_id = '202701' 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.create_test_snapshot( test_id=test_id, snapshot_request=snapshot_request, aid=aid, _headers=self.te_headers("create_test_snapshot", error_status="429"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_test_snapshot_error_500(self) -> None: """Integration test for create_test_snapshot error path (HTTP 500)""" request_body_json = """ { "endDate" : "2023-06-06T01:00:00Z", "displayName" : "Snapshot created through API", "isPublic" : false, "startDate" : "2023-06-06T00:00:00Z" } """ snapshot_request = thousandeyes_sdk.snapshots.models.SnapshotRequest.from_json(request_body_json) test_id = '202701' 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_test_snapshot( test_id=test_id, snapshot_request=snapshot_request, aid=aid, _headers=self.te_headers("create_test_snapshot", error_status="500"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) def test_create_test_snapshot_error_502(self) -> None: """Integration test for create_test_snapshot error path (HTTP 502)""" request_body_json = """ { "endDate" : "2023-06-06T01:00:00Z", "displayName" : "Snapshot created through API", "isPublic" : false, "startDate" : "2023-06-06T00:00:00Z" } """ snapshot_request = thousandeyes_sdk.snapshots.models.SnapshotRequest.from_json(request_body_json) test_id = '202701' 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(502) ) as context: self.api.create_test_snapshot( test_id=test_id, snapshot_request=snapshot_request, aid=aid, _headers=self.te_headers("create_test_snapshot", error_status="502"), ) assert_constructed_model_matches_example_json(context.exception.data, expected_error) if __name__ == '__main__': unittest.main()