Selenium を使用して Django ビューをテストする機能テストを作成しようとしています。ユーザーがページ ("page2") にアクセスすると、そのページをレンダリングするビューは、セッション変数 "uid" (ユーザー ID) を見つけることを期待します。これがどのように行われるかについての記事を半ダース読みましたが、どれもうまくいきませんでした。以下のコードは、Django のドキュメントで実行する必要があると記載されている方法を示していますが、私にとっても機能しません。テストを実行すると、ビューの実行が完了せず、「サーバー エラーが発生しました」というメッセージが表示されます。誰かが私が間違っていることを教えてもらえますか? ありがとうございました。
ビュー.py:
from django.shortcuts import render_to_response
def page2(request):
uid = request.session['uid']
return render_to_response('session_tests/page2.html', {'uid': uid})
test.py:
from django.test import LiveServerTestCase
from selenium import webdriver
from django.test.client import Client
class SessionTest(LiveServerTestCase):
def setUp(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(3)
self.client = Client()
self.session = self.client.session
self.session['uid'] = 1
def tearDown(self):
self.browser.implicitly_wait(3)
self.browser.quit()
def test_session(self):
self.browser.get(self.live_server_url + '/session_tests/page2/')
body = self.browser.find_element_by_tag_name('body')
self.assertIn('Page 2', body.text)