Djangoで、テスト専用のURLパターンとビュー関数を作る

(コメント)

Django 1.9 までは、SimpleTestCase に urls 属性を書いていたようですが、コードを読むと

def _urlconf_setup(self):
if hasattr(self, 'urls'):
warnings.warn(
"SimpleTestCase.urls is deprecated and will be removed in "
"Django 1.10. Use @override_settings(ROOT_URLCONF=...) "
"in %s instead." % self.__class__.__name__,
RemovedInDjango110Warning, stacklevel=2)
set_urlconf(None)
self._old_root_urlconf = settings.ROOT_URLCONF
settings.ROOT_URLCONF = self.urls
clear_url_caches()

deprecated と書いてあったので、これにならって

@override_settings(ROOT_URLCONF=...) 

で書いたらうまくいきました。

from django.conf.urls import url
from django.core.urlresolvers import reverse
from django.http import JsonResponse
from django.test import TestCase, override_settings

from lib.current_request import get_current_request


def current_request_view(request):
"""
current_request() 動作確認のためのビュー
"""
current_request = get_current_request()

return JsonResponse({
'current_request_path': current_request.path,
'request_path': request.path,
})


urlpatterns = [
url(r'^current-request/$', current_request_view,
name='current_request_view')
]


class CurrentRequestTest(TestCase):
@override_settings(ROOT_URLCONF="lib.tests.test_current_request")
def test_current_request(self):
response = self.client.get(reverse('current_request_view'))
data = response.json()
self.assertEqual(data['current_request_path'], '/current-request/')
self.assertEqual(data['request_path'], '/current-request/')

現在未評価

コメント

最近のツイート

  • ytyng

    ytyng @ytyng

    HIS のベトナムのハロン湾クルーズのガイドさんが天然でシセロ(cv 岩崎ひろし )でクルーズ船内ざわついている。突然ハイテンションで歌い出したり高笑いしたり同じ言葉を連呼したり
    2 日, 15 時間 前

  • ytyng

    ytyng @ytyng

    漫画村閉鎖したので、僕らのサイト使ってくださいね。マンガが無料で読めます。スキマ。まだサーバ負荷には余裕があります! https://t.co/dTjQJZO1TP
    1 週間, 5 日 前

  • ytyng

    ytyng @ytyng

    エンジニアリング組織論への招待 https://t.co/FUqPgcUKWh めっちゃいい本だった。 ただしKindle版とまちがって紙の本が家に届いてて失敗した。
    2 週間, 2 日 前