내 앱에는 if request.get_host() == Site.objects.get_current().domain
줄이 있습니다. 문제는 내 검사에서이 조건은 절대로 True
입니다. request.get_host()
은 testserver
이고 Site.objects.get_current
은 example.com
을 반환합니다. 나는 을 request
에 추가 할 수 있다는 것을 알고 있지만 매 요청마다 전역 적으로 변경하고 싶습니다.테스트에서 Site.get_current()/request.get_host()를 재정의하는 방법
0
A
답변
0
HTTP_HOST에서 client.get()
까지의 방법으로 request.get_host()
동작을 제어 할 수 있습니다. 언급 한대로 SERVER_NAME을 사용할 수 있지만 get_host()에 의해 사용되며 SERVER_NAME이 SERVER_PORT 변수와 관련하여 사용되므로 일부 기본 포트가 아닌 다른 서버에서 "SERVER_NAME : SERVER_PORT"를 얻을 수 있으므로 HTTP_HOST를 사용하는 것이 좋습니다. 사례.
그래서 테스트는 다음과 같이 수 :
from django.test import TestCase
class FooTests(TestCase):
def test_bar(self):
self.client.get('/', HTTP_HOST='example.com')
당신이 전체 테스트 케이스 클래스를 수행 할 경우이 같은 client_class
을 재정의 할 수
from django.test import TestCase
from django.test.client import Client
class MyClient(Client):
HTTP_HOST = 'example.com'
def get(self, *args, **kwargs):
kwargs.setdefault('HTTP_HOST', self.HTTP_HOST)
return super(MyClient, self).get(*args, **kwargs)
class MyTestCase(TestCase):
client_class = MyClient
class FooTests(MyTestCase):
def test_foo(self):
self.client.get('/')
또는 당신은 쓸 수 있습니다 내 이전 예제와 비슷한 모양의 TestCase
에 대한 Mixin.
마지막으로 django.test.TestCase.client_class
을 무시할 수 있습니다. 이것은 전 세계적으로 잘 돌아갈 것이지만 조금 해킹 된 것처럼 보입니다. 그러기를 권합니다.
관련 문제
- 1. Junit 테스트에서 정적 메서드를 재정의하는 방법은 무엇입니까?
- 2. 재정의하는 방법
- 3. 내 스칼라 테스트에서 암시 적 변환을 재정의하는 방법은 무엇입니까?
- 4. webapp2 처리 단위 테스트에서 self.request.host를 재정의하는 방법은 무엇입니까?
- 5. EntityFramework 속성을 재정의하는 방법
- 6. onLoad를 재정의하는 방법?
- 7. C# .NET을 재정의하는 방법
- 8. CursorAdapter를 재정의하는 방법 bindView
- 9. 사용자 ACL을 재정의하는 방법
- 10. Bootbox로 경고를 재정의하는 방법
- 11. console.log를 재정의하는 방법
- 12. Nopcommerce에서보기를 재정의하는 방법?
- 13. 생성자 정의를 재정의하는 방법
- 14. ListFragment에서 LongPress를 재정의하는 방법?
- 15. 레일 : stylesheet_path를 재정의하는 방법
- 16. lex : YY_BUF_SIZE를 재정의하는 방법
- 17. jquery 테마를 재정의하는 방법
- 18. 자바에서 클래스를 재정의하는 방법
- 19. easyAdminBundle 컨트롤러를 재정의하는 방법
- 20. UICollectionViewController에서 collectionView를 재정의하는 방법
- 21. Prestashop에서 재정의하는 방법
- 22. C에서 deserialization을 재정의하는 방법
- 23. yiiframework에서 jquery.yiigridview.js를 재정의하는 방법
- 24. 기본 element.styles를 재정의하는 방법
- 25. MPTT 재정의하는 방법
- 26. WebServiceHostFactory MaxReceivedMessageSize를 재정의하는 방법?
- 27. FOSUserBundle에서 ProfileController를 재정의하는 방법
- 28. jinja2에서 매크로를 재정의하는 방법
- 29. ActiveRecord 클래스를 재정의하는 방법
- 30. Mage_Checkout_Block_Links를 재정의하는 방법