| 95 | # This here causes to call this function mocking the AWS calls |
| 96 | @mock_aws |
| 97 | def set_mocked_aws_provider( |
| 98 | audited_regions: list[str] = [AWS_REGION_US_EAST_1], |
| 99 | audited_account: str = AWS_ACCOUNT_NUMBER, |
| 100 | audited_account_arn: str = AWS_ACCOUNT_ARN, |
| 101 | audited_partition: str = AWS_COMMERCIAL_PARTITION, |
| 102 | expected_checks: list[str] = [], |
| 103 | profile_region: str = None, |
| 104 | audit_config: dict = {}, |
| 105 | fixer_config: dict = {}, |
| 106 | mutelist: dict = None, |
| 107 | scan_unused_services: bool = True, |
| 108 | audit_session: session.Session = session.Session( |
| 109 | profile_name=None, |
| 110 | botocore_session=None, |
| 111 | ), |
| 112 | original_session: session.Session = None, |
| 113 | enabled_regions: set = None, |
| 114 | arguments: Namespace = Namespace(), |
| 115 | status: list[str] = [], |
| 116 | create_default_organization: bool = True, |
| 117 | ) -> AwsProvider: |
| 118 | if audited_regions is None: |
| 119 | raise ValueError( |
| 120 | "audited_regions is None, which means all 36 regions will be used. " |
| 121 | "Pass an explicit list of regions instead." |
| 122 | ) |
| 123 | |
| 124 | if create_default_organization: |
| 125 | # Create default AWS Organization |
| 126 | create_default_aws_organization() |
| 127 | |
| 128 | # Default arguments |
| 129 | arguments = set_default_provider_arguments(arguments, status) |
| 130 | |
| 131 | # AWS Provider |
| 132 | provider = AwsProvider() |
| 133 | |
| 134 | # Mock Session |
| 135 | session_config = AwsProvider.set_session_config(None) |
| 136 | provider._session.session_config = session_config |
| 137 | provider._session.original_session = original_session |
| 138 | provider._session.current_session = audit_session |
| 139 | audit_session._session.set_default_client_config(session_config) |
| 140 | # Mock Identity |
| 141 | provider._identity.account = audited_account |
| 142 | provider._identity.account_arn = audited_account_arn |
| 143 | provider._identity.user_id = None |
| 144 | provider._identity.partition = audited_partition |
| 145 | provider._identity.identity_arn = None |
| 146 | provider._identity.profile = None |
| 147 | provider._identity.profile_region = profile_region |
| 148 | provider._identity.audited_regions = audited_regions |
| 149 | # Mock Configiration |
| 150 | provider._scan_unused_services = scan_unused_services |
| 151 | provider._enabled_regions = ( |
| 152 | enabled_regions |
| 153 | if enabled_regions is not None |
| 154 | else (set(audited_regions) if audited_regions else None) |