PUROGU LADESU

ポエムがメインのブログです。

【Django】チュートリアル5〜6 テスト、静的ファイルの扱い

その5 テスト

Django におけるテスト
Django におけるテスト | Django ドキュメント | Django

各アプリのtests.pyに書く

python manage.py test xxxx で実行
モデルやビューごとに TestClass を分割する

class QuestionModelTests(TestCase):
  self.assertIs(q.something(), False)

アプリケーション内のtest.pyを実行する
TestCaseのサブクラスが対象
メソッドはtestで始める

self.assertXXXでチェックする
テスト用のデータベースが作成され、終了後クリーンアップされる

シェルでブラウザシミュレート

python manage.py shell

from django.test.utils import setup_test_environment
setup_test_environment()

from django.test import Client
client = Client()
response = client.get(reverse('polls:index'))
response.content
response.context['latest_question_list']

ビューのテスト

クライアントでアクセスして、レスポンスの中身を調べる。
Javascriptの振る舞いは確認できない。

response = self.client.get(reverse('polls:index'))
# ステータスコードのチェック
self.assertEqual(response.status_code, 200)
# 表示内容のチェック
self.assertContains(response, "No polls are available.")
# 返されるcontextのチェック
self.assertQuerysetEqual(response.context['latest_question_list'], [])
self.assertQuerysetEqual(response.context['latest_question_list'],['<Question: Past question.>'])

インタラクションのテスト

LiveServerTestCase



その6 静的ファイルの扱い

静的ファイル (画像、JavaScript、CSS など) を管理する | Django ドキュメント | Django

css, javascriptなど

静的ファイルの参照先はSTATICFILES_FINDERSで定義される。
デフォルトで各アプリのアブフォルダを参照してくれる。
設定 | Django ドキュメント | Django

アプリフォルダの中にstaticを作成し、さらにアプリ名のサブフォルダを作る。
polls/static/polls/style.css

テンプレート内でstaticで絶対パスを生成。

{% load static %}

{% static 'polls/style.css' %} 

画像

staticの中にimagesフォルダを作って置く。
polls/static/polls/images/image.gif

STATIC_ROOTを変更できるので相対パスを使うべき。

まとめ

ファイルの取扱は詳細を要確認。
ユーザーによるファイルアップロードなどは記載がないので、MEDIA_ROOTなどの設定を調べる。