[英]How to make Django test client send requests to different subdomains
我正在使用django-subdomains項目在django項目中啟用子域,效果很好。
但是,在編寫測試時,我無法弄清楚如何使Django測試客戶端將請求發送到不同的子域。
它只發送,即使我改變ROOT_URLCONF指向與SUBDOMAIN_URLCONFS條目的一個請求到根域@override_settings
。 但是,如果我直接在改變ROOT_URLCONF它工作settings.py
到所需的子域的URLconf,這顯然是不能接受的解決方案。
還嘗試對Django TestCase類進行子類化,並將“ url”字段設置為子域urlconf,但請求仍將進入root用戶,導致404。
最后,我嘗試使用subdomains.utils.reverse
來獲取絕對URL,但是測試客戶端根本不接受此URL。
這個問題可能與Django Test Client和Subdomains有關 。 有人在評論中提到,黑客已被用來解決此問題。 請說明黑客或什至是更好的解決方案,這種解決方案肯定可以解決這種不太常見的用例。
HTTP_HOST = 'rede.example.com'
class TestIndexView(TestCase):
def setUp(self):
self.url = subdomain_reverse('network_index', subdomain='rede')
def test_render(self):
response = self.client.get(self.url, HTTP_HOST=HTTP_HOST)
self.assertEqual(response.status_code, 200)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.