PPP3: Circle CI (続き3)
チュートリアルやってから戻ってくるか
戻ってきました
前にやってたことが思い出せないので読み返してみたり
でもなんだかわかった気がしないのはなぜか
・・・
チュートリアルにforms.Form
って出てきたっけ?
HTMLでFORMタグは出てきたけどビューで処理してたよな
・・・
普通はビューの中で使う便利なものらしい
単体で使ってもHTMLになった文字列を返すのでテストできるってことっぽい
それくらいにしておこう
わりと大事そうな機能だけどなあ
チュートリアルに入れとかなくていいのかな
INSTALLED_APPS
にmenu
を追加
マイグレーションファイルの作成
そうだshellで試してみようか
$ python manage.py shell
(InteractiveConsole)
>>> from menu import forms
>>> print(forms.TeaSearchForm())
<tr><th><label for="id_name">名前:</label></th><td><input type="text" name="name" maxlength="255" id="id_name" /></td></tr>
<tr><th><label for="id_kind">種類:</label></th><td><select name="kind" id="id_kind" multiple="multiple">
<option value="english">英国紅茶</option>
<option value="chinese">中国茶</option>
<option value="japanese">日本茶</option>
</select></td></tr>
なるほど
テスト
import unittest
from django.test import TestCase as DjangoTest
from menu.models import Tea
from menu.forms import TeaSearchForm
class TeaManagerTest(DjangoTest):
def setUp(self):
Tea.objects.bulk_create([
Tea(name="ダージリン", kind="english"),
Tea(name="ウーロン茶", kind="chinese"),
Tea(name="プーアル茶", kind="chinese"),
])
def test_count_each_kind(self):
result = Tea.objects.count_each_kind()
self.assertEqual(result, dict(english=1, chinese=2))
class TeaSearchFormTest(unittest.TestCase):
def test_valid(self):
params = dict(name="foo", kind=["english"])
form = TeaSearchForm(params)
self.assertEqual(form.is_valid(), True, form.errors.as_text())
...
なんとなくわかったけど
DjangoTest
とunittest.TestCase
を使い分けているのはなんなんだ
チュートリアルだけじゃわからんことばかりだ
config.ymlも直してと
- run: |
python3.6 -m venv venv
source ./venv/bin/activate
pip install django==1.11.7
cd cafe/apps
python manage.py migrate
python manage.py test
push
Ran 5 tests in 0.002s
OK
OK
でも「Test Summary」の下に「Set Up Test Summary」って出てるのが
気になるんですけど!