Fix/lambda backend (#1556)

* Fix exception with "object has no attribute"

When use this code:

   client = boto3.client('lambda')
   client.get_policy([...])

moto rise:
```
moto/awslambda/responses.py", line 109, in _get_policy
    lambda_backend = self.get_lambda_backend(full_url)
Exception: 'LambdaResponse' object has no attribute 'get_lambda_backend'
```

* fix shadows built-in name
This commit is contained in:
Alberto Vara 2018-04-07 20:07:17 +02:00 committed by Jack Danger
parent 2ee484990d
commit 56f29a0e6e

View File

@ -94,25 +94,21 @@ class LambdaResponse(BaseResponse):
return self._add_policy(request, full_url, headers)
def _add_policy(self, request, full_url, headers):
lambda_backend = self.get_lambda_backend(full_url)
path = request.path if hasattr(request, 'path') else request.path_url
function_name = path.split('/')[-2]
if lambda_backend.has_function(function_name):
if self.lambda_backend.get_function(function_name):
policy = request.body.decode('utf8')
lambda_backend.add_policy(function_name, policy)
self.lambda_backend.add_policy(function_name, policy)
return 200, {}, json.dumps(dict(Statement=policy))
else:
return 404, {}, "{}"
def _get_policy(self, request, full_url, headers):
lambda_backend = self.get_lambda_backend(full_url)
path = request.path if hasattr(request, 'path') else request.path_url
function_name = path.split('/')[-2]
if lambda_backend.has_function(function_name):
function = lambda_backend.get_function(function_name)
return 200, {}, json.dumps(dict(Policy="{\"Statement\":[" + function.policy + "]}"))
if self.lambda_backend.get_function(function_name):
lambda_function = self.lambda_backend.get_function(function_name)
return 200, {}, json.dumps(dict(Policy="{\"Statement\":[" + lambda_function.policy + "]}"))
else:
return 404, {}, "{}"