def test_list_registries_throws_exception_when_result_set_is_empty(self):
     max_items = 10
     schemas_api_caller = SchemasApiCaller(self.client)
     self.client.can_paginate.return_value = True
     self.client.get_paginator.return_value.paginate.return_value = []
     with self.assertRaises(ResourceNotFound) as ctx:
         schemas_api_caller.list_registries(None, max_items)
     msg = "No Registries found. This should not be possible, please raise an issue."
     self.assertEqual(str(ctx.exception), msg)
 def test_list_registries_raises_not_available_in_region_exception(self):
     max_items = 10
     schemas_api_caller = SchemasApiCaller(self.client)
     self.client.can_paginate.return_value = False
     self.client.get_paginator.return_value.paginate.side_effect = botocore.exceptions.EndpointConnectionError(
         endpoint_url="Not valid endpoint.")
     with self.assertRaises(NotAvailableInRegion) as ctx:
         schemas_api_caller.list_registries("next_token", max_items)
     msg = (
         "EventBridge Schemas are not available in provided region. Please check "
         "AWS doc for Schemas supported regions.")
     self.assertEqual(str(ctx.exception), msg)
    def test_list_registries_without_next_token(self):
        max_items = 10
        schemas_api_caller = SchemasApiCaller(self.client)
        self.client.can_paginate.return_value = True
        self.client.get_paginator.return_value.paginate.return_value = [{
            "ResponseMetadata": {
                "RequestId": "26f73117-024e-49ce-8788-ea4d9278fdd8",
                "HTTPStatusCode": 200,
                "HTTPHeaders": {},
                "RetryAttempts": 0,
            },
            "Registries": [{
                "RegistryName": "aws.events"
            }],
        }]

        list_registries_response = schemas_api_caller.list_registries(
            None, max_items)
        self.assertEqual(list_registries_response["registries"],
                         ["aws.events"])
        self.assertEqual(list_registries_response["next_token"], None)

        self.client.get_paginator.assert_called_once()
        self.client.get_paginator.assert_called_once_with("list_registries")
        self.client.get_paginator.return_value.paginate.assert_called_once_with(
            PaginationConfig={
                "StartingToken": None,
                "MaxItems": max_items,
                "PageSize": max_items
            })