내 앱이 django-localeurl을 사용하고 있습니다. 내 단위 테스트는 django 1.5.5에서 괜찮 았지만 django 1.6.2로 옮긴 이후로 응답 상태 301 때문에 많은 오류가 발생했습니다.
이것은 로케일 접두사를 고려하지 않은 잘못된 URL로 인해 발생한 것 같습니다. 즉, reverse
단위 테스트에서 호출 할 때 reverse
localeurl 대신 일반적인 django 가 호출 reverse
됩니다.
나는이 있음을 확인했습니다 patch_reverse
유닛 테스트에서라고합니다. 내 전화는 내 기본 urls.py의 맨 위에 있습니다. 괜찮아 보인다.
그러나 어떤 이유로 든 장고 reverse
는 무언가에 의해 복원됩니다.
이 문제는 단위 테스트 중에 만 발생하는 것 같습니다. 앱을 실행할 때 URL이 올바르게 현지화되었습니다.
문제는 django-localeurl의 다음 문제에 해당한다고 생각합니다. https://bitbucket.org/carljm/django-localeurl/issue/22/test-problem
누구든지이 문제의 원인이 무엇인지 알고 있습니까 (장고 1.6에서 단위 테스트 메커니즘이 변경 되었습니까? 그 이유입니까?).
최신 정보
다음 설정을 강제하면 문제가 발생하지 않습니다
TEST_RUNNER = 'django.test.simple.DjangoTestSuiteRunner'
원인은 DiscoverRunner
(django 1.6에서 테스트를 실행하는 새로운 방법) 실행할 테스트 목록을 작성하기 위해 미리 테스트 모듈을 가져 오기 때문인 것 같습니다 .
결과적으로 설정 및 URL을 가져 오기 전에 테스트 모듈 가져 오기가 실행됩니다. 그런 다음 모듈 reverse
은 패치되기 전에 django 를 가져옵니다.urls.py
내 수정 사항은 테스트 모듈의 시작 부분에 패치를 적용하는 것입니다. 완벽한 솔루션은 아니지만 작동합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다