diff --git a/moto/awslambda/responses.py b/moto/awslambda/responses.py index 83a1cefca..96d20444f 100644 --- a/moto/awslambda/responses.py +++ b/moto/awslambda/responses.py @@ -117,6 +117,7 @@ class LambdaResponse(BaseResponse): raise ValueError("Cannot handle {0} request".format(request.method)) def policy(self, request, full_url, headers): + self.setup_class(request, full_url, headers) if request.method == 'GET': return self._get_policy(request, full_url, headers) if request.method == 'POST': @@ -140,7 +141,7 @@ class LambdaResponse(BaseResponse): path = request.path if hasattr(request, 'path') else path_url(request.url) function_name = path.split('/')[-2] if self.lambda_backend.get_function(function_name): - policy = request.body.decode('utf8') + policy = self.body self.lambda_backend.add_policy(function_name, policy) return 200, {}, json.dumps(dict(Statement=policy)) else: diff --git a/tests/test_awslambda/test_lambda.py b/tests/test_awslambda/test_lambda.py index d57722074..3ff225e48 100644 --- a/tests/test_awslambda/test_lambda.py +++ b/tests/test_awslambda/test_lambda.py @@ -769,10 +769,10 @@ def test_get_function_created_with_zipfile(): @mock_lambda -def add_function_permission(): +def test_add_function_permission(): conn = boto3.client('lambda', 'us-west-2') zip_content = get_test_zip_file1() - result = conn.create_function( + conn.create_function( FunctionName='testFunction', Runtime='python2.7', Role='test-iam-role', @@ -796,16 +796,16 @@ def add_function_permission(): EventSourceToken='blah', Qualifier='2' ) - assert 'Statement' in response - res = json.loads(response['Statement']) - assert res['Action'] == "lambda:InvokeFunction" + assert u'Statement' in response + res = json.loads(response[u'Statement']) + assert res[u'Action'] == u'lambda:InvokeFunction' @mock_lambda -def get_function_policy(): +def test_get_function_policy(): conn = boto3.client('lambda', 'us-west-2') zip_content = get_test_zip_file1() - result = conn.create_function( + conn.create_function( FunctionName='testFunction', Runtime='python2.7', Role='test-iam-role', @@ -834,10 +834,9 @@ def get_function_policy(): FunctionName='testFunction' ) - assert 'Policy' in response - assert isinstance(response['Policy'], str) - res = json.loads(response['Policy']) - assert res['Statement'][0]['Action'] == 'lambda:InvokeFunction' + assert u'Policy' in response + res = json.loads(response[u'Policy']) + assert res[u'Statement'][0][u'Action'] == u'lambda:InvokeFunction' @mock_lambda