希望这是一个简单的问题,但文档或web2py书中似乎并未涵盖...

我有一个web2py控制器方法,看起来像:

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中的任何函数。在外壳中运行一些命令,然后将会话粘贴到您的文档字符串中。

关于python - web2py:创建传递参数的doctest,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10432488/

10-16 03:29