簡體   English   中英

如何使Django測試客戶端將請求發送到不同的子域

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM