Best Python code snippet using localstack_python
provider.py
Source:provider.py  
...79class IamProvider(IamApi):80    def __init__(self):81        apply_patches()82    @staticmethod83    def build_evaluation_result(84        action_name: ActionNameType, resource_name: ResourceNameType, policy_statements: List[Dict]85    ) -> EvaluationResult:86        eval_res = EvaluationResult()87        eval_res["EvalActionName"] = action_name88        eval_res["EvalResourceName"] = resource_name89        eval_res["EvalDecision"] = PolicyEvaluationDecisionType.explicitDeny90        for statement in policy_statements:91            # TODO Implement evaluation logic here92            if (93                action_name in statement["Action"]94                and resource_name in statement["Resource"]95                and statement["Effect"] == "Allow"96            ):97                eval_res["EvalDecision"] = PolicyEvaluationDecisionType.allowed98                eval_res["MatchedStatements"] = []  # TODO: add support for statement compilation.99        return eval_res100    def simulate_principal_policy(101        self,102        context: RequestContext,103        policy_source_arn: arnType,104        action_names: ActionNameListType,105        policy_input_list: SimulationPolicyListType = None,106        permissions_boundary_policy_input_list: SimulationPolicyListType = None,107        resource_arns: ResourceNameListType = None,108        resource_policy: policyDocumentType = None,109        resource_owner: ResourceNameType = None,110        caller_arn: ResourceNameType = None,111        context_entries: ContextEntryListType = None,112        resource_handling_option: ResourceHandlingOptionType = None,113        max_items: maxItemsType = None,114        marker: markerType = None,115    ) -> SimulatePolicyResponse:116        policy = moto_iam_backend.get_policy(policy_source_arn)117        policy_version = moto_iam_backend.get_policy_version(118            policy_source_arn, policy.default_version_id119        )120        try:121            policy_statements = json.loads(policy_version.document).get("Statement", [])122        except Exception:123            raise IAMNotFoundException("Policy not found")124        evaluations = [125            self.build_evaluation_result(action_name, resource_arn, policy_statements)126            for action_name in action_names127            for resource_arn in resource_arns128        ]129        response = SimulatePolicyResponse()130        response["IsTruncated"] = False131        response["EvaluationResults"] = evaluations132        return response133    def delete_policy(self, context: RequestContext, policy_arn: arnType) -> None:134        if moto_iam_backend.managed_policies.get(policy_arn):135            moto_iam_backend.managed_policies.pop(policy_arn, None)136        else:137            raise IAMNotFoundException("Policy {0} was not found.".format(policy_arn))138    def detach_role_policy(139        self, context: RequestContext, role_name: roleNameType, policy_arn: arnType...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
