2012-10-10 37 views
0

我正在爲「拋出」URL錯誤的重定向編寫Django測試,但我想這樣做沒有易碎的正則表達式。Django:爲URL字符串數據解析HttpResponse對象

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! 

是否有網址解析成類似字典的對象的方法,這樣我就可以:

response_obj = something(url) 
self.assertEquals(response_obj.get('error'), 'errortype') 

回答

5

如何urlparse

>>> import urlparse 
>>> zoo = urlparse.urlparse('http://www.example.com/foo?bar=zoo') 
>>> urlparse.parse_qs(zoo.query) 
{'bar': ['zoo']} 
+0

謝謝。這個模塊和你的例子是完美的。 – ash