2014-02-16 2 views
0

django-subdomains 프로젝트를 사용하여 장고 프로젝트의 하위 도메인을 사용할 수 있습니다.Django 테스트 클라이언트가 다른 하위 도메인으로 요청을 보내도록 만드는 방법

그러나 테스트를 작성할 때 장고 테스트 클라이언트가 다른 하위 도메인으로 요청을 보내는 방법을 알아낼 수 없습니다.

으로 SUBDOMAIN_URLCONFS의 항목 중 하나를 가리 키도록 ROOT_URLCONF를 변경하더라도 루트 도메인에만 요청을 보냅니다. 그러나 내가 직접적으로 settings.py의 ROOT_URLCONF를 원하는 하위 도메인 인 urlconf로 변경하면 작동합니다. 이는 분명히 받아 들일 수없는 해결책입니다.

은 또한 장고의 TestCase 클래스를 서브 클래스 및 하위 도메인 urlconf에 "URL"필드를 설정하려고하지만 요청이 여전히 마지막으로 404

의 결과로, 루트에 가고, 나는를 얻을 수 subdomains.utils.reverse을 사용하려 절대 URL이지만 테스트 클라이언트는이 사실을 전혀 받아들이지 않습니다.

이 질문은 Django Test Client and Subdomains과 관련이있을 수 있습니다. 누군가 해킹이이 문제를 해결하는 데 사용되었다는 의견을 언급했습니다. 이 해킹 또는 더 나은 해법을 분명히 밝혀주세요. 이렇게 확실하지 않은 사용 사례를 다루기위한 적절한 해결책입니다.

답변

1
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) 
+0

'subdomain_reverse' 함수 란 무엇입니까? 반환하는 URL의 형식은 무엇입니까? 나는 모든 종류의 URL 해킹을 무사히 시도했기 때문에 이것이 효과가 있었다면 놀랄 것입니다. – vokuheila

+0

하위 도메인 관리를 위해 http://django-subdomains.readthedocs.org/en/latest/을 사용하고 있습니다. – allisson