WebアプリをFlaskで構築しており、pytestを使ってテストを走らせたいのですが、ExcelファイルをFlaskのアプリケーションに投げる方法を教えていただけないでしょうか?
このアプリでは、ユーザがExcelファイル(設定ファイル)を予め作成してこれをアップロードし、Webページ側ではアップロードされたファイルをpandasで読み込み、設定に応じた処理をしています。
Python
1# Testコード 2from app import application 3import pandas as pd 4import pytest 5 6def test_register(): 7 df = pd.read_excel('./settings.xlsx') 8 response = client.post('/register', 9 data={'file': (df, 'settings.xlsx')}) 10 assert response.status_code == 200 11 12# テストを走らせると 13# ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 14# というエラーが出る
Python
1# Webアプリのスクリプト 2from flask import Flask, request 3application = Flask() 4 5@application.route('/register', methods=['POST']) 6def register(): 7 file = request.files['file'] 8 uni_string = file.stream.read() 9 df = pd.read_excel(io.BytesIO(uni_string))
HTML
1# form部分のみ 2<form method="POST" action="/register_simulation" enctype="multipart/form-data"> 3 ファイルをアップロード<input type="file" name="file"> 4</form>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。