私はここで完全に立ち往生しています。このテスト ケースが失敗するのはなぜですか?
class BogusForm(forms.Form):
bogus_bool = forms.BooleanField()
class TestBogusForm(TestCase):
def test_bogus_false(self):
query_dict = QueryDict('', mutable=True)
query_dict.update({'bogus_bool': False})
bogus_form = BogusForm(query_dict)
self.assertTrue(bogus_form.is_valid())
フォームフィールドの検証に失敗しますが、 QueryDict を更新したときに bogus_bool が False の場合のみです。私が言うなら:
query_dict.update({'bogus_bool': True})
その後、検証に合格します。何が起きてる?これは Django Forms のバグですか?
BogusForm コンストラクターに渡す前に QueryDict を見ると、次のようになります。
<QueryDict: {u'bogus_bool': [False]}>
これは完全に合法で正しいように見えます。