Тестирование страниц django с помощью промежуточного ПО для multihost

Справочная информация: я использую промежуточное ПО django-multihost (http: //effbot.org/zone/django-multihost.htm), чтобы мое единственное приложение django могло отвечать на разные имена хостов из одного и того же проекта. Промежуточное ПО изменяет ROOT_URLCONF (т.е. файл urls.py ) на основе HTTP-заголовка запроса Host: .

Это отлично работает, но я хочу написать несколько простых интеграционных тестов, которые проверят, правильно ли загружаются страницы. Вот пример базового теста, который проверяет, загружается ли страница / 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 на время тестирования, но я не уверен, как это сделать.

5
задан Leopd 9 November 2010 в 19:13
поделиться