kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

PPP3: Circle CI (続き3)

チュートリアルやってから戻ってくるか

戻ってきました
前にやってたことが思い出せないので読み返してみたり
でもなんだかわかった気がしないのはなぜか

・・・

チュートリアルforms.Formって出てきたっけ?
HTMLでFORMタグは出てきたけどビューで処理してたよな

・・・

普通はビューの中で使う便利なものらしい
単体で使ってもHTMLになった文字列を返すのでテストできるってことっぽい
それくらいにしておこう
わりと大事そうな機能だけどなあ
チュートリアルに入れとかなくていいのかな

INSTALLED_APPSmenuを追加
マイグレーションファイルの作成

そうだ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())

    ...

なんとなくわかったけど
DjangoTestunittest.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」って出てるのが
気になるんですけど!