Python路由不适用于非静态URL

时间:2011-07-08 07:39:20

标签: python routes pylons wsgi

我正在尝试为旧的pylons 0.9.7应用程序编写单元测试。 我们遇到的问题是,很容易意外地对URL进行硬编码 我们的jinja2模板中的路径,在有人托管之前可以正常工作 我们的应用程序使用不同的前缀(即托管它 http://localhost/foo/而非http://localhost/)。我 使用粘贴的默认“功能测试”设置执行此操作 为我创造。我查询每个控制器动作,并传递自定义 SCRIPT_NAME喜欢这样:

response = self.app.get('/some/url/path', 
                        extra_environ={'SCRIPT_NAME' : '/custom_prefix'})

然后我使用beautifulsoup来解析文档,迭代所有文档 具有href属性或src属性的标记,并确保 它以'/ custom_prefix'开头。

这是事情变得奇怪的地方:当我们传递绝对路径时 我们的模板中pylons.url(实际上是routes.util.URLGenerator),如下所示:

{{ h.stylesheet_link(h.url('/css/style.css')) }}

......它完美无缺。但是,当我们使用关键字调用pylons.url时 像这样的论点:

{{ h.link_to('Home', h.url(controller='person', action='home')) }}

...未插入前缀。但是,url()功能有效 正确运行时正确使用(即使用mod_wsgipastedeploy)非空SCRIPT_NAME

我想我错过了关键的一步,但我想不出它是什么。

0 个答案:

没有答案