import os from functools import wraps from moto import mock_ec2, mock_ssm def ec2_aws_verified(func): """ Function that is verified to work against AWS. Can be run against AWS at any time by setting: MOTO_TEST_ALLOW_AWS_REQUEST=true If this environment variable is not set, the function runs in a `mock_s3` context. This decorator will: - Create a bucket - Run the test and pass the bucket_name as an argument - Delete the objects and the bucket itself """ @wraps(func) def pagination_wrapper(): allow_aws = ( os.environ.get("MOTO_TEST_ALLOW_AWS_REQUEST", "false").lower() == "true" ) if allow_aws: resp = func() else: with mock_ec2(), mock_ssm(): resp = func() return resp return pagination_wrapper