新しいカスタム ユーザー モデルを使用して、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'