djangoビューをテストするための簡単な単体テストを作成しました。このビューは、リクエストオブジェクトとともに渡されたイメージファイルをS3にアップロードします。ユニットテストDjangoビューをs3にアップロードするビュー
コード:
url = 'view-endpoint-url'
myfile = open('pathtoimage')
payload = {'data1': 'xyz', 'file': myfile}
response = client.post(url, payload, MULTIPART_CONTENT)
試験下ビューが呼び出されたこの時点で:タイプInMemoryUploadedFileのrequest.FILE [「ファイル」]で予想されるように、画像ファイルが格納されています。
ビューを開こうと
(request.FILE [「ファイル」])と私が得る)(読みIOError no such file or directory
画像ファイルが場所内が、一部には存在しないので、私は混乱していますそれは拾われていない理由。私はcurlコマンドを使って同様のテストを行い、すべて正常に動作します。
単体テストに役立つ回避策はありますか?
更新:
基本的に私は、ユニットテストにInMemoryUploadedFileのファイルパスをつかむしようとしているビュー
ソリューション同じビュー内のファイルを読み込むことで、この問題を修正しました
他のユーティリティメソッドを使用してInMemoryUploadedFileを読み取るのではなく、テスト中です。
何らかの理由で、InMemoryUploadedFileが、別のフォルダ内のユーティリティメソッドを使用して読み取られたときにファイルパスのトラックを失っています。