背景:我正在使用中間件django-multihost
(http://effbot.org/zone/django-multihost.htm)來允許我的單個django應用程序響應來自相同主機名的不同主機名項目。中間件根據Host:
HTTP請求標頭更改ROOT_URLCONF
(即哪個urls.py
文件)。用多媒體中間件測試django頁面
這很好,但我想寫一些簡單的集成測試,檢查頁面加載正確。這裏有一個基本的測試,檢查的一個例子,如果/trends
頁面加載,它的上面有文字「趨勢的今天」:
def test_homepage_loads(self):
client = Client()
client.login(username = 'testing', password = 'testing')
page = client.get("/trends", follow = follow_redirects)
self.assertEquals(page.status_code, 200)
self.assertTrue(page.content.find('Trends for Today') > 0)
問題是,這個總是加載使用默認ROOT_URLCONF,而不是一箇中間件會調用。如果我明確地將主機名放入url中,則無關緊要,如client.get("http://secondarysite/trends")
。
如何使用django測試客戶端測試其他虛擬站點?我想在測試中調用中間件,以便測試該邏輯。但是如果我需要在測試期間做一些像設置ROOT_URLCONF這樣的操作,但我不知道該怎麼做。
完美。謝謝! – Leopd 2010-11-09 20:38:15