1. ホーム
  2. django

[解決済み] Django の DoesNotExist 例外はどのようにインポートしますか?

2022-06-19 18:46:15

質問

オブジェクトが削除されたことを確認するためのUnitTestを作成しようとしています。

from django.utils import unittest
def test_z_Kallie_can_delete_discussion_response(self):
  ...snip...
  self._driver.get("http://localhost:8000/questions/3/want-a-discussion") 
  self.assertRaises(Answer.DoesNotExist, Answer.objects.get(body__exact = '<p>User can reply to discussion.</p>'))

エラーが出続けています。

DoesNotExist: Answer matching query does not exist.

どのように解決するのですか?

インポートする必要はありません - あなたがすでに正しく書いているように。 DoesNotExist はモデル自身のプロパティで、この場合は Answer .

あなたの問題は、あなたが get メソッドに渡される前に、例外を発生させるメソッドである assertRaises . で説明したように、引数を呼び出し可能なものから分離する必要があります。 unittest ドキュメント :

self.assertRaises(Answer.DoesNotExist, Answer.objects.get, body__exact='<p>User can reply to discussion.</p>')

またはそれ以上の

with self.assertRaises(Answer.DoesNotExist):
    Answer.objects.get(body__exact='<p>User can reply to discussion.</p>')