gpt4 book ai didi

python - 如何测试使用 Context 的 Azure Function?

转载 作者:行者123 更新时间:2023-12-02 07:54:05 26 4
gpt4 key购买 nike

我正在编写一个使用上下文(用于监视目的)的 Azure 函数,这就是我的函数的样子:

import logging
import json
import azure.functions as func

def main(req: func.HttpRequest, context: func.Context) -> func.HttpResponse:
logging.info(
"{}\t{}".format(
context.invocation_id, context.function_name
)
)
reponse = "foo"
return func.HttpResponse(json.dumps(reponse), mimetype="application/json")

我想为此函数编写集成测试,如下所示:

import unittest
import azure.functions as func
from MyFunc import main

class TestMyFunc(unittest.TestCase):
def test_myfunc(self):
req = func.HttpRequest(
method="GET",
body=None,
url="/api/myfunc",
)
ctx = ??
reponse = main(req, ctx) # This part fails because of the context

self.assertEqual(
reponse.get_body(),
b'foo',
)

如何创建 Context对象传递给我的 Azure 函数?

最佳答案

看起来像Context is an ABC(Abstract Base Class) class ,所以不能直接实例化。相反,您可以 subclass the func.Context class并将该类的实例用作 ctx

class MockContext(func.Context):
def __init__(self, ii, fn, fd):
self._invocation_id = ii
self._function_name = fn
self._function_directory = fd

@property
def invocation_id(self):
return self._invocation_id

@property
def function_name(self):
return self._function_name

@property
def function_directory(self):
return self._function_directory

ctx = MockContext("Some dummy values")

关于python - 如何测试使用 Context 的 Azure Function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69390154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com