希望是一个简单的问题,但文档或 web2py 书中似乎没有涉及...
我有一个看起来像这样的 web2py Controller 方法:
def mymethod():
'''
doctests go here
'''
param1 = request.vars['param1']
param2 = request.vars['param2']
param3 = request.vars['param3']
# Stuff happens...
return dict(result=result)
根据文档将参数作为请求变量传递
有什么方法可以构建一个 doctest(与方法定义内联)来评估调用的返回值,例如 mymethod(param1=9, param2='a', param3=3.7)?
提前致谢
请您参考如下方法:
只需将所需的值放入 doctest 中的 request.vars 中:
def mymethod():
'''
>>> request.vars.update(param1=9, param2='a', param3=3.7)
>>> mymethod()
[expected output of mymethod goes here]
'''
为了获得正确的 doctest,您可以在 web2py shell 中尝试,您可以按如下方式启动:
python web2py.py -S myapp/mycontroller -M -N
这将在执行应用程序模型文件的环境中为您提供一个 Python shell(这就是 -M 选项的作用)。因为指定了 mycontroller,所以您还可以调用 mycontroller 中的任何函数。在 shell 中运行一些命令,然后将 session 粘贴到您的文档字符串中。
