我正在为一个“抛出”URL字符串错误的重定向编写一个Django测试,但我想这样做而没有脆弱的正则表达式。
def test_redirect_contains_error_string(self):
response = self.client.get('/sendme/', follow=True)
// response.redirect_chain: [('https://e.com/?error=errortype', 302)]
url = response.redirect_chain[0][0]
self.assertTrue(re.search('error=errortype', url))
// Ew!
是否有方法将URL解析为类似dict的对象,所以我可以:
response_obj = something(url)
self.assertEquals(response_obj.get('error'), 'errortype')
答案 0 :(得分:5)
>>> import urlparse
>>> zoo = urlparse.urlparse('http://www.example.com/foo?bar=zoo')
>>> urlparse.parse_qs(zoo.query)
{'bar': ['zoo']}