Django ユニット テストを使用して、ファイルのダウンロードをテストしています。これは、必要なトークンを GET パラメーターとして使用する API 呼び出しとして機能しますが、特別なことは何もありません。コードは次のとおりです。
from django.test.client import Client
c = Client()
base_url = str(sample_download_resource_uri) + '?token=' + str(account_token)
response = c.get(base_url)
if response.status_code != 200:
return False, "Status code for /download_attachment/XYZ/ is not 200"
URL は次のようなものです:/download_attachment/1/
または/download_attachment/2/
ファイル ID によって異なります。
単体テストを実行しようとすると、次の行で:
if response.status_code != 200:
エラーが発生します:I/O exception on closed file.
ブラウザーで呼び出しからの URL を試してみると、完全に機能します。
私は、tests.py ファイルと tests コマンドを使用して単体テストを実行するのではなく、Django ビューを使用して Web サーバーをリモートで単体テストします。しかし、GET コマンドと POST コマンドの両方に対して、他のすべてのダウンロード以外の単体テストが機能するため、違いはありません。