0

我有一个像这样的 Django url 模式:

url(r'browse/state/(?P<state>\d+)$', browse_state_sites)

像这样编写测试会导致状态匹配查询错误。

def test_browse_state_county_sites(self):
    resp = self.client.get('/browse/state/1')
    self.assertEqual(resp.status_code, 200)

你如何传入捕获组来测试路径?

4

1 回答 1

4

name像这样给你的网址:

url(r'browse/state/(?P<state>\d+)$', browse_state_sites, name='state-detail')

然后在您的测试代码中使用django.core.urlresolvers.reverse如下:

resp = self.client.get(reverse('state-detail', kwargs={
  'state': 12345,
}))

您可能会收到错误消息,因为根据您提供的内容,没有匹配项GET/browse/state/1/county/1browse/state/(?P<state>\d+)$则表达式将匹配任何形式的 url browse/state/<number>- 这/county/1将导致匹配失败。

于 2013-10-04T20:43:23.523 回答