首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >web2py:创建传递参数的文档测试

web2py:创建传递参数的文档测试
EN

Stack Overflow用户
提问于 2012-05-03 21:31:29
回答 2查看 762关注 0票数 2

希望是一个简单的问题,但文档或web2py书籍中似乎没有涵盖这个问题……

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

代码语言:javascript
运行
复制
def mymethod():
    '''
    doctests go here
    '''
    param1 = request.vars['param1']
    param2 = request.vars['param2']
    param3 = request.vars['param3']
    # Stuff happens...
    return dict(result=result)

并根据文档将参数作为请求变量传递

有没有办法构建一个文档测试(与方法定义内联)来评估调用的返回值,比如mymethod(param1=9, param2='a', param3=3.7)

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-03 22:22:50

只需将所需的值放入文档测试的request.vars中:

代码语言:javascript
运行
复制
def mymethod():
    '''
    >>> request.vars.update(param1=9, param2='a', param3=3.7)
    >>> mymethod()
    [expected output of mymethod goes here]
    '''

要获得正确的文档测试,您可以在web2py shell中尝试,您可以按如下方式开始:

代码语言:javascript
运行
复制
python web2py.py -S myapp/mycontroller -M -N

这将在一个执行了应用程序模型文件的环境中为您提供一个Python shell (这就是-M选项的作用)。因为指定了mycontroller,所以您还可以调用mycontroller中的任何函数。在shell中运行一些命令,然后将会话粘贴到您的文档字符串中。

票数 3
EN

Stack Overflow用户

发布于 2013-04-17 22:45:24

除了@Anthony提供的优秀示例之外,我还尝试使用urllib2.urlopen(...)在测试restful服务时。从文档的角度来看,代码并不是很整洁,但它是有效的。

代码语言:javascript
运行
复制
@request.restful()
def api():
    '''The following code demostrates how to interact with this api via python.

    >>> import urllib2, urllib, httplib, json
    >>> host = 'localhost:8000'
    >>> func = 'api'  # Otherwise request.function is NOT current function name during doctest
    >>> base = 'http://%s/%s/%s/%s' % (host, request.application, request.controller, func)


    Read all stuff.
    >>> json.load(urllib2.urlopen(base))
    {u'content': []}

    Create an entries.
    >>> p = {'name': 'Peter Pan', 'address': 'Neverland',}
    >>> r = json.load(urllib2.urlopen(base, urllib.urlencode(p)))
    >>> r['id'] > 0 and r['errors'] == {}  # typically as {'errors': {}, 'id': 1}
    True

    blah blah

    '''
    # the function body goes here
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10432488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档