2016-05-20 17 views
0

という名前のモデルの属性がemailの場合、無効なメールでInquiryを作成するとエラーが発生することを確認できますか?DjangoでValidationErrorをテストする

私はエラー

TypeError: 'Enquiry' object is not callable

私はかなり何かが届かないを取得しかし、この

def test_email_is_valid(self): 
    self.assertRaises(ValidationError, Enquiry.objects.create(email="testtest.com")) 

を試してみましたが、誰もが電子メールの検証をテストするための正しい方法を知っているのですか?

答えて

2

save()またはcreate()を呼び出すと、Djangoはオブジェクトを自動的に検証しません。検証は、full_cleanメソッドを呼び出すことで起動できます。

def test_email_is_valid(self): 
    enquiry = Enquiry(email="testtest.com") 
    self.assertRaises(ValidationError, enquiry.full_clean) 

上記のコードではfull_clean()を呼び出さないことに注意してください。

def test_email_is_valid(self): 
    with self.assertRaises(ValidationError): 
     enquiry = Enquiry(email="testtest.com") 
     enquiry.full_clean() 
ValidationErrorをがdjango.core.exceptionsから ` でインポートすることができ
+0

インポートValidationError':あなたは代わりにコンテキストマネージャのアプローチを好むかもしれません – Ullullu

関連する問題