Example #1
0
def _get_schema_template_details(schemas_api_caller):
    try:
        return get_schema_template_details(schemas_api_caller)
    except ClientError as e:
        raise SchemasApiException(
            "Exception occurs while getting Schemas template parameter. %s" %
            e.response["Error"]["Message"]) from e
 def test_schema_prompt_not_called_when_one_schema(self, schemas_api_caller,
                                                   prompt_mock):
     prompt_mock.side_effect = ["1"]
     schemas_api_caller.list_registries.return_value = {
         "registries": ["aws.events"],
         "next_token": None
     }
     schemas_api_caller.list_schemas.return_value = {
         "schemas": ["aws.autoscaling.AWSAPICallViaCloudTrail"],
         "next_token": None,
     }
     schemas_api_caller.get_latest_schema_version.return_value = "1"
     schemas_api_caller.get_schema_metadata.return_value = {
         "event_source": "aws.autoscaling",
         "event_source_detail_type": "aws.autoscaling response",
         "schema_root_name": "AWSAPICallViaCloudTrail",
         "schemas_package_hierarchy": "schemas/aws/AWSAPICallViaCloudTrail",
     }
     schema_template_details = get_schema_template_details(
         schemas_api_caller)
     self.assertEqual(schema_template_details["schema_full_name"],
                      "aws.autoscaling.AWSAPICallViaCloudTrail"),
     self.assertEqual(schema_template_details["schema_root_name"],
                      "AWSAPICallViaCloudTrail"),
     self.assertEqual(schema_template_details["registry_name"],
                      "aws.events")
     self.assertEqual(schema_template_details["schema_version"], "1")
     self.assertEqual(schema_template_details["event_source"],
                      "aws.autoscaling")
     self.assertEqual(schema_template_details["event_source_detail_type"],
                      "aws.autoscaling response")
     self.assertEqual(schema_template_details["schemas_package_hierarchy"],
                      "schemas/aws/AWSAPICallViaCloudTrail")
     self.assertFalse(prompt_mock.called)
    def test_get_schema_template_details(self, schemas_api_caller,
                                         prompt_mock):
        prompt_mock.side_effect = ["1", "2"]
        schemas_api_caller.list_registries.return_value = {
            "registries": ["aws.events", "default"],
            "next_token": None
        }
        schemas_api_caller.list_schemas.return_value = {
            "schemas": [
                "aws.autoscaling.AWSAPICallViaCloudTrail",
                "aws.autoscaling.EC2InstanceLaunchSuccessful",
                "aws.autoscaling.EC2InstanceLaunchUnsuccessful",
                "aws.autoscaling.EC2InstanceTerminateLifecycleAction",
                "aws.autoscaling.EC2InstanceTerminateSuccessful",
                "aws.autoscaling.EC2InstanceTerminateUnsuccessful",
            ],
            "next_token":
            None,
        }
        schemas_api_caller.get_latest_schema_version.return_value = "1"
        schemas_api_caller.get_schema_metadata.return_value = {
            "event_source": "aws.autoscaling",
            "event_source_detail_type": "aws.autoscaling response",
            "schema_root_name": "EC2InstanceLaunchSuccessful",
            "schemas_package_hierarchy":
            "schemas/aws/EC2InstanceLaunchSuccessful",
        }

        schema_template_details = get_schema_template_details(
            schemas_api_caller)
        self.assertEqual(schema_template_details["schema_full_name"],
                         "aws.autoscaling.EC2InstanceLaunchSuccessful"),
        self.assertEqual(schema_template_details["schema_root_name"],
                         "EC2InstanceLaunchSuccessful"),
        self.assertEqual(schema_template_details["registry_name"],
                         "aws.events")
        self.assertEqual(schema_template_details["schema_version"], "1")
        self.assertEqual(schema_template_details["event_source"],
                         "aws.autoscaling")
        self.assertEqual(schema_template_details["event_source_detail_type"],
                         "aws.autoscaling response")
        self.assertEqual(schema_template_details["schemas_package_hierarchy"],
                         "schemas/aws/EC2InstanceLaunchSuccessful")
        prompt_mock.assert_any_call("Schema Registry",
                                    type=ANY,
                                    show_choices=False)
        prompt_mock.assert_any_call("Event Schemas",
                                    type=ANY,
                                    show_choices=False)
 def test_schema_prompt_paginate_with_previous_page_choice(
         self, schemas_api_caller, prompt_mock):
     prompt_mock.side_effect = ["N", "N", "P", "15", "N", "N", "P", "12"]
     schemas_api_caller.list_registries.side_effect = [
         {
             "registries":
             ["r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10"],
             "next_token":
             "1234"
         },
         {
             "registries": [
                 "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18",
                 "r19", "r20"
             ],
             "next_token":
             "1234",
         },
         {
             "registries": [
                 "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28",
                 "r29", "r30"
             ],
             "next_token":
             None
         },
     ]
     schemas_api_caller.list_schemas.side_effect = [
         {
             "schemas":
             ["s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "s10"],
             "next_token":
             "1234"
         },
         {
             "schemas": [
                 "s11", "s12", "s13", "s14", "s15", "s16", "s17", "s18",
                 "s19", "s20"
             ],
             "next_token":
             "1234"
         },
         {
             "schemas": [
                 "s21", "s22", "s23", "s24", "s25", "s26", "s27", "s28",
                 "s29", "s30"
             ],
             "next_token":
             None
         },
     ]
     schemas_api_caller.get_latest_schema_version.return_value = "1"
     schemas_api_caller.get_schema_metadata.return_value = {
         "event_source": "aws.autoscaling",
         "event_source_detail_type": "aws.autoscaling response",
         "schema_root_name": "AWSAPICallViaCloudTrail",
         "schemas_package_hierarchy": "schemas/aws/AWSAPICallViaCloudTrail",
     }
     schema_template_details = get_schema_template_details(
         schemas_api_caller)
     self.assertEqual(schema_template_details["schema_full_name"], "s12"),
     self.assertEqual(schema_template_details["schema_root_name"],
                      "AWSAPICallViaCloudTrail"),
     self.assertEqual(schema_template_details["registry_name"], "r15")
     self.assertEqual(schema_template_details["schema_version"], "1")
     self.assertEqual(schema_template_details["event_source"],
                      "aws.autoscaling")
     self.assertEqual(schema_template_details["event_source_detail_type"],
                      "aws.autoscaling response")
     self.assertEqual(schema_template_details["schemas_package_hierarchy"],
                      "schemas/aws/AWSAPICallViaCloudTrail")
     prompt_mock.assert_any_call(
         "Schema Registry [Page 1/many] (Enter N for next page)",
         type=ANY,
         show_choices=False)
     prompt_mock.assert_any_call(
         "Schema Registry [Page 2/many] (Enter N/P for next/previous page)",
         type=ANY,
         show_choices=False)
     prompt_mock.assert_any_call(
         "Schema Registry [Page 3/3] (Enter P for previous page)",
         type=ANY,
         show_choices=False)
     prompt_mock.assert_any_call(
         "Schema Registry [Page 2/3] (Enter N/P for next/previous page)",
         type=ANY,
         show_choices=False)
     prompt_mock.assert_any_call(
         "Event Schemas [Page 1/many] (Enter N for next page)",
         type=ANY,
         show_choices=False)
     prompt_mock.assert_any_call(
         "Event Schemas [Page 2/many] (Enter N/P for next/previous page)",
         type=ANY,
         show_choices=False)
     prompt_mock.assert_any_call(
         "Event Schemas [Page 3/3] (Enter P for previous page)",
         type=ANY,
         show_choices=False)
     prompt_mock.assert_any_call(
         "Event Schemas [Page 2/3] (Enter N/P for next/previous page)",
         type=ANY,
         show_choices=False)