0

新しいカスタム ユーザー モデルを使用して、django 1.5b でサインアップ フォームの単体テストを行っています。新しいユーザーが既存の電子メールでサインアップしようとすると、カスタムの clean_email メソッドが ValidationError を発生させることをテストしたいと思います。これが私が書いた clean メソッドです:`

def clean_email(self):

    email = self.cleaned_data["email"]
    try:
        user = MyUser.objects.get(email=email)
        raise forms.ValidationError("This email address already exists.")
    except MyUser.DoesNotExist:
        return email

テストコード:

def test_clean_email(self):
    data = {'email': 'aaaa@gmail.com'}
    form = MyForm(data)
    actual   = form.errors['email']
    expected = [u'This email address already exists.']
    self.assertEqual(actual, expected)

テストを実行すると、次のようになります。

actual   = form.errors['email']
KeyError: 'email'
4

1 に答える 1

0

居住するには電話form.is_valid()する必要があります。form.errors

于 2012-12-10T09:18:18.990 に答える