2010-06-25 63 views
0

我们正在尝试为我们的主塔应用程序设置控制器测试。我做了一个非常简单的控制器和一个非常简单的测试。这些测试是这样的:主塔控制器测试不通过请求参数

class TestMainController(TestController): 
    def test_index(self): 
     response = self.app.get(url(controller='main', action='index', var1 = '1'), params={'var2':'2'}) 
     print response.req 
     assert False 

同时,控制器看起来是这样的:

class MainController(BaseController): 
    def index(self): 
     print request 
     print request.params 

出于某种原因,当我们运行这段代码,我们得到以下的输出:

-------------------- >> begin captured stdout << --------------------- 
GET /_test_vars HTTP/1.0 
Host: localhost:80 
<Request at 0x36d6950 GET http://localhost/_test_vars> 
UnicodeMultiDict([]) 
GET /main/index/?var1=1&var2=2 HTTP/1.0 
Host: localhost:80 

--------------------- >> end captured stdout << ---------------------- 

TestApp认为它发送了正确的请求,但是命中控制器的请求是错误的。任何人都知道这里发生了什么?我们目前正在测试中死于水中。

+0

这段代码对于我在新创建的Pylons 1.0项目中工作得很好。它必须是你在代码中其他地方正在做的事情。你如何在主控制器中导入'请求'?你是否在你的测试设置中的某个地方做了任何特殊的设置(例如request._push_object)? – 2010-07-07 21:06:00

回答

1

根据Marius的评论,事实证明我们正在做一个早期的设置我们的应用程序的要求。这个要求是与事情搞砸的。