1. ホーム
  2. django

[解決済み] django でファイルアップロードをユニットテストする方法

2022-09-01 21:06:11

質問

私の django アプリでは、ファイルのアップロードを行うビューがあります。

...
if  (request.method == 'POST'):
    if request.FILES.has_key('file'):
        file = request.FILES['file']
        with open(settings.destfolder+'/%s' % file.name, 'wb+') as dest:
            for chunk in file.chunks():
                dest.write(chunk)

ビューをユニットテストしたいと思います。ハッピーパスとフェイルパスをテストするつもりです。 request.FILES がキー 'file' を持っていない場合や request.FILES['file'] には None ..

ハッピーパスの投稿データはどのように設定するのですか?誰か教えてください。

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

Django のドキュメントから Client.post :

ファイルの投稿は特殊なケースです。ファイルを POST するために必要なのは ファイルフィールド名をキーとして与え、アップロードしたいファイルへのファイルハンドルを値として与えるだけです。 を値として提供するだけです。例えば

c = Client()
with open('wishlist.doc') as fp:
  c.post('/customers/wishes/', {'name': 'fred', 'attachment': fp})