我有一个金字塔应用程序,可以将某些功能锁定到HTTPS连接。如何模拟WebTest下的HTTPS请求?
服务器由nginx(通常)前端,我使用PasteDeploy检测HTTPS连接。从我environment.ini:
[filter:proxy-prefix]
use = egg:PasteDeploy#prefix
如果连接是HTTPS,粘贴部署设置request.scheme
变量'https'
。
我正试图编写一些集成的测试,我似乎无法弄清楚如何让webtest提供的TestApp
处理请求,就好像它是HTTPS一样。
你能介绍更多这一点: 一般来说,这意味着呼吁“主”,而不是“MYAPP” get_app。 基于其他的测试套件,我有这个本质: 高清setUpClass(CLS): cls.app =主({} **设置) 画质设置(个体经营): self.app = TestApp (self.app) self.config = testing.setUp() 高清test__something(个体经营): self.app.get() 我试图在wsgi.url_scheme传递给extra_environ - 没有运气。 我可能不得不重构我的应用代码来查找environ ['wsgi.url_scheme']而不是request.scheme –
“'cls.app = main({},** settings)'”does ** not **加载INI文件,因此不包括前缀中间件。这意味着你必须自己完成中间件的工作,并自己设置'wsgi.url_scheme' environ参数。如果你想要中间件,你可以手动添加它'app = paste.deploy.config.PrefixMiddleware(app)',或者你可以加载一个测试ini文件'app = pyramid.paster.get_app('testing.ini#main') '这将加载由INI的“main”部分定义的完整wsgi堆栈。 –
设置先前设置为: settings = appconfig('config:'+ os.path.join(here,'../../','development.ini')) 我明白了get_app功能。去尝试它。万分感谢。 –