Best Python code snippet using localstack_python
lambda_api.py
Source:lambda_api.py  
...604    lambda_details.cwd = tmp_dir605    return tmp_dir606def set_function_code(lambda_function: LambdaFunction):607    def _set_and_configure():608        do_set_function_code(lambda_function)609        # initialize function code via plugins610        for plugin in lambda_executors.LambdaExecutorPlugin.get_plugins():611            plugin.init_function_code(lambda_function)612    # unzipping can take some time - limit the execution time to avoid client/network timeout issues613    run_for_max_seconds(config.LAMBDA_CODE_EXTRACT_TIME, _set_and_configure)614    return {"FunctionName": lambda_function.name()}615def store_and_get_lambda_code_archive(616    lambda_function: LambdaFunction, zip_file_content: bytes = None617) -> Optional[Tuple[str, str, bytes]]:618    """Store the Lambda code referenced in the LambdaFunction details to disk as a zip file,619    and return the Lambda CWD, file name, and zip bytes content. May optionally return None620    in case this is a Lambda with the special bucket marker __local__, used for code mounting."""621    code_passed = lambda_function.code622    is_local_mount = code_passed.get("S3Bucket") == config.BUCKET_MARKER_LOCAL623    lambda_cwd = lambda_function.cwd624    if code_passed:625        lambda_cwd = lambda_cwd or set_archive_code(code_passed, lambda_function.name())626        if not zip_file_content and not is_local_mount:627            # Save the zip file to a temporary file that the lambda executors can reference628            zip_file_content = get_zip_bytes(code_passed)629    else:630        lambda_details = LambdaRegion.get().lambdas[lambda_function.arn()]631        lambda_cwd = lambda_cwd or lambda_details.cwd632    if not lambda_cwd:633        return634    # construct archive name635    archive_file = os.path.join(lambda_cwd, LAMBDA_ZIP_FILE_NAME)636    if not zip_file_content:637        zip_file_content = load_file(archive_file, mode="rb")638    else:639        # override lambda archive with fresh code if we got an update640        save_file(archive_file, zip_file_content)641    return lambda_cwd, archive_file, zip_file_content642def do_set_function_code(lambda_function: LambdaFunction):643    """Main function that creates the local zip archive for the given Lambda function, and644    optionally creates the handler function references (for LAMBDA_EXECUTOR=local)"""645    def generic_handler(*_):646        raise ClientError(647            (648                'Unable to find executor for Lambda function "%s". Note that '649                + "Node.js, Golang, and .Net Core Lambdas currently require LAMBDA_EXECUTOR=docker"650            )651            % lambda_name652        )653    lambda_name = lambda_function.name()654    arn = lambda_function.arn()655    runtime = get_lambda_runtime(lambda_function)656    lambda_environment = lambda_function.envvars...test_lambda_whitebox.py
Source:test_lambda_whitebox.py  
...316        """Tests if a lambda invocation fails if state is pending"""317        function_name = f"test-function-{short_uid()}"318        zip_file = create_lambda_archive(load_file(TEST_LAMBDA_PYTHON_ECHO), get_content=True)319        function_code_set = threading.Event()320        def _do_set_function_code(*args, **kwargs):321            result = do_set_function_code(*args, **kwargs)322            function_code_set.wait()323            return result324        monkeypatch.setattr(325            localstack.services.awslambda.lambda_api, "do_set_function_code", _do_set_function_code326        )327        try:328            response = lambda_client.create_function(329                FunctionName=function_name,330                Runtime="python3.9",331                Handler="handler.handler",332                Role=lambda_su_role,333                Code={"ZipFile": zip_file},334            )335            assert response["State"] == "Pending"...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!!
