AWS Lambda 单元测试用例引发错误

AWS Lambda unittest cases throwing errors

提问人:Alex_python 提问时间:11/17/2023 最后编辑:MauriceAlex_python 更新时间:11/18/2023 访问量:39

问:

我有一个 AWS lambda 正在调用另一个 lambda,我正在为它创建单元测试文件,以下是我的源代码。

sample_lambda.py

client = boto3.client('lambda')
   def lambda_handler(event,context):
         t_json = json_parser(event)
         response = client.invoke(
                     FunctionName='FuctionARN', InvocationType='RequestResponse'
                     Payload = json.dumps(t_json))
         status_code = response["StatusCode"]
         return status_code

json_parser将事件 json 作为输入,对其进行解析并返回 json 对象。

测试文件test_sample_lambda.py - 引发错误

from sample_lambda import lambda_handler
import unittest
from unittest import mock

class Testsamplelambda(unittest.TestCase):

    @mock.patch("boto3.client")
    def test_lambda_handler(self, mock_client):
        mock_client.return_value = mock_client
        expected = "{'status_code':'200'}"
  
        test_event = {
                     "Records":[{
                         "data":[
                              {
                               }]
                      }]  
              }              
       actual = lambda_handler(test_event,{})
       self.assertEqual(actual, expected)

错误消息:test_lambda_hander() 接受两个位置参数,但给出了 3 个

有人可以分享如何解决这个问题的想法吗?

蟒蛇 aws-lambda boto3

评论

0赞 Alex_python 11/17/2023
请输入任何内容
0赞 Alex_python 11/20/2023
正在等待输入,如果有人知道这个问题,请在此处提供帮助。
0赞 Mike Fiedler 11/21/2023
还请分享您如何调用测试、您使用的 Python 版本以及可能涉及的任何其他包,因为我无法重现此问题。

答: 暂无答案