有没有办法在测试时设置wsgi.input的值?

时间:2010-07-08 12:17:23

标签: python unit-testing wsgi

使用wsgiref.util.setup_testing_defaults()设置WSGI时environ是否可以设置wsgi.input值,以便可以测试HTTP POST请求?

调查由wsgi.input创建的setup_testing_defaults()值,表明它是wsgi.validate.InputWrapper对象,readreadlinereadlines,{{1 }},inputclose方法,但没有方法。

修改
我正在研究Python 2.6.1

1 个答案:

答案 0 :(得分:3)

根据WSGI规范,wsgi.input只是一个类文件对象。因此,即使您的帮助程序库为environ['wsgi.input']分配了一些奇怪的对象,您也可以将其替换为您想要的任何类文件对象。特别是,使用StringIO对象:

e = {}
setup_testing_defaults(e)
s = urlencode({'q': 'is there a way to set the value of wsgi input'})
e['wsgi.input'] = StringIO(s)